我们在使用定时器的时候首先会想到timer,还有handler sendmessagedelay 时间这两种方法,如需长时间的触发事件则需要使用alrm来完成:
设置alarm 时间, 睡眠sleep_time的时间
AlarmManager alarmMgr = (AlarmManager) mainActivity.getSystemService(Context.ALARM_SERVICE); Intent alarm_intent = new Intent(mainActivity.getApplicationContext(), MediaButtonIntentReceiver.class); alarm_intent.setAction(ALARM_SLEEP_ACTION); int requestCode = 0; PendingIntent mPendingIntent = PendingIntent.getBroadcast(mainActivity.getApplicationContext(), requestCode, alarm_intent, PendingIntent.FLAG_UPDATE_CURRENT); int triggerAtTime = (int)(SystemClock.elapsedRealtime() + sleep_time*60*1000); alarmMgr.set(AlarmManager.ELAPSED_REALTIME, triggerAtTime, mPendingIntent);
在BroadcastReceiver里面调用onreceive方法:
@Override public void onReceive(Context context, Intent intent) { if(ALARM_SLEEP_ACTION.equals(intentAction)){ //do things } }
AlarmManager定时器的使用,类似于timer效果,布布扣,bubuko.com
原文:http://blog.csdn.net/chaihuasong/article/details/21806345