使用Service启动AlarmManager,这样即使应用程序退出也可以正常工作。以下是示例代码:
1.创建自定义Service
public class MyAlarmService extends Service { private BroadcastReceiver receiver;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
int AlarmType = AlarmManager.ELAPSED_REALTIME_WAKEUP;
long TimeDelay = 5000;
Intent intentAlarm = new Intent(this, MyAlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmType, SystemClock.elapsedRealtime() + TimeDelay, TimeDelay, pendingIntent);
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
2.创建自定义BroadcastReceiver
public class MyAlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alarm worked.", Toast.LENGTH_LONG).show();
}
}
3.在主Activity中启动Service
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(this, MyAlarmService.class);
startService(intent);
}
}