我需要在我的 Android 应用程序中实现以下功能:触发定期服务的切换按钮。
让我以更好的方式提出这个问题:我想要一个具有“开启”模式的切换按钮。在这种模式下,我想定期启动一个服务(例如每 5 分钟)。在“关闭”模式下,定期服务被禁用。我想我需要使用 AlarmManager 服务。
你能给我提供指导方针(如果可能的话,附上代码)或一个很好的教程来做到这一点?
预先感谢
我需要在我的 Android 应用程序中实现以下功能:触发定期服务的切换按钮。
让我以更好的方式提出这个问题:我想要一个具有“开启”模式的切换按钮。在这种模式下,我想定期启动一个服务(例如每 5 分钟)。在“关闭”模式下,定期服务被禁用。我想我需要使用 AlarmManager 服务。
你能给我提供指导方针(如果可能的话,附上代码)或一个很好的教程来做到这一点?
预先感谢
私人警报管理器警报管理器;私有的 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();
}
}
现在广播类应该如下所示:
public class MyBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("test_log", "broadcast worked ");
}
}
现在是接收器的清单声明:
<receiver android:name=".MyBroadCastReceiver"></receiver>