我需要在我的Android应用程序中实现以下功能:触发定期服务的切换按钮。
让我以更好的方式提出问题:我想要一个具有“开启”模式的切换按钮。在这种模式下,我想定期启动服务(例如每5分钟)。在“关闭”模式下,禁用定期服务。 我想我需要使用AlarmManager服务。
您可以向我提供指南(如果可能的话,还有代码)或者是一个很好的教程吗?
提前感谢
答案 0 :(得分:0)
私人AlarmManager alarmManager; private PendingIntent pendingIntent;
使用此创建的方法点击切换按钮打开和关闭服务。 还要确保将AlarmManager用作单例。
private void setService() {
try {
if (alarmManager != null) {
alarmManager.cancel(pendingIntent);
}
} catch (Exception e) {
e.printStackTrace();
}
Intent intent = new Intent(this, MyBroadCastReceiver.class);
pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0);
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); //
// 60 seconds i.e 1 min
long time = 60 * 1000;
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + time, time, pendingIntent);
}
要删除serviceUpdates,请使用以下方法:
private void removeService() {
try {
if (alarmManager != null) {
alarmManager.cancel(pendingIntent);
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
现在,Broadcast类应该如下所示:
public class MyBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("test_log", "broadcast worked ");
}
}
现在来了你的接收者的明确声明:
<receiver android:name=".MyBroadCastReceiver"></receiver>