最近工作有用到定时器的功能,我原来也没有接触过关于定时器的功能,在网上找了些资料,了解了一下AlarmManager类.
一、AlarmManager类
这个类提供了对系统报警服务的访问。
二、.结构关系
extends Object
三.获取这个类的实例
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
四、AlarmManager的用法
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button btnset;
private Calendar calendar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnset = (Button) findViewById(R.id.btnset);
btnset.setOnClickListener(this);
//获得日历的实例对象
calendar = Calendar.getInstance();
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btnset:
showDialog(0);
break;
}
}
@Override
protected Dialog onCreateDialog(int id) {
Dialog dialog = null ;
switch (id){
case 0 :
dialog = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Intent intent = new Intent(MainActivity.this,alarm.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this,0,intent,0);
calendar.setTimeInMillis(System.currentTimeMillis()); calendar.set(Calendar.HOUR_OF_DAY,hourOfDay);
calendar.set(Calendar.MINUTE,minute);
calendar.set(Calendar.SECOND,0);
calendar.set(Calendar.MILLISECOND, 0);
//AlarmManager对象
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
//设置闹钟 一次性的;arg0:闹钟类型;arg1:在多少毫秒时间关闭;arg2:意图
am.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pendingIntent);
//设置重复闹钟 arg0:闹钟类型;arg1:在多少毫秒时间关闭;arg2:闹钟重复的时间间隔;arg3:意图
am.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis()+(10*1000),(24*60*60*1000),pendingIntent);
//取消闹钟,取消的Intent必须与启动Intent保持绝对一致才能支持取消
//am.cancel(pendingIntent);
}
},0,0,true);
break ;
}
return dialog;
}
}
清单文件中注册广播
<receiver
android:name=".alarm"
android:process=":remote"></receiver>
<!-- 也就是说android:process=":remote",代表在应用程序里,当需要该service时,会自动创建新的进程。而如果是android:process="remote",没有“:”分号的,则创建全局进程,不同的应用程序共享该进程。 -->