定时功能(AlarmManager)

来源:互联网 发布:kindle软件下载 编辑:程序博客网 时间:2024/05/21 10:50

                在很多软件开发中我们都会用到定时功能,定时功能如何实现,这里需要用到一个关键,使用闹钟管理器触发事件,这些事件可在特定

的时刻或以固定的时间间隔发生。也就是我们刚刚所说的定时功能。我们来实现一个闹钟的小例子来简单体现一下。

                首先获得闹钟管理器:

                         AlarmManager alarmManager=(AlarmManager)this.getSystem.Service(Context,ALARM_SERVICE);

                 确定设置闹钟的时刻:

//闹钟(一次)public void setAlarm(View view){

//时间一到,发送广播(闹钟响了)

//获取当前系统的时间 Calendar calendar=Calendar.getInstance(); int hour=calendar.get(Calendar.HOUR_OF_DAY); int minute=calendar.get(Calendar.MINUTE);

  //弹出时间对话框 TimePickerDialog timePickerDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker view, int hourOfDay, int minute) { Calendar c=Calendar.getInstance(); c.set(Calendar.HOUR_OF_DAY,hourOfDay); c.set(Calendar.MINUTE,minute); Intent intent=new Intent(); intent.setAction("com.example.android_alarm_notifaction.Wwoo0");

//预约跳转 PendingIntent pendingIntent=PendingIntent.getBroadcast(MainActivity.this,0x101,intent,0);

  //设置闹钟

alarmManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent);

} },hour,minute,true); timePickerDialog.show();}

//广播接受者中(跳转Activity)

public class RingReceived extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        if ("com.example.android_alarm_notifaction.Wwoo0".equals(intent.getAction())){            Log.i("test","闹钟响了");            Intent intent1=new Intent(context,RingActivity.class);            intent1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);            context.startActivity(intent1);        }    }}

// 跳转Activity,在这个Activity中播放音乐

public class RingActivity extends AppCompatActivity {    private MediaPlayer mediaPlayer;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_ring);        mediaPlayer = MediaPlayer.create(this, R.raw.dogbark);        mediaPlayer.start();    }    public void stop(View view){        mediaPlayer.stop();        finish();    }}





闹钟基本就实现了,定时功能在这基础上再延伸扩展

0 0
原创粉丝点击