プライベート AlarmManager alarmManager; プライベート 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();
}
}
これで、ブロードキャスト クラスは次のようになります。
public class MyBroadCastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("test_log", "broadcast worked ");
}
}
次に、レシーバーのマニフェスト宣言を行います。
<receiver android:name=".MyBroadCastReceiver"></receiver>