У меня проблемы с отменой будильника, и с него запущена служба.
Я установил будильник в активности:
public class AlarmStarter extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent locationPollerIntent = new Intent(this, LocationPoller.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast
(getApplicationContext(), REQUEST_CODE, locationPollerIntent, 0);
alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime(), 6000, pendingIntent);
}
}
Намерение LocationPoller запустит службу для определения местоположения устройства.
Поэтому я использую alarmManager, чтобы повторять этот поиск с определенной частотой.
После этого, когда я получаю свое местоположение на BroadcastReceiver, я вызываю другое действие, чтобы показать местоположение и запускаю уведомление.
В настоящее время я хотел бы прекратить поиск местоположения.
Поэтому я пытаюсь отменить AlarmManager.
public class Notifier extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.alarm_notifier);
findViewById(R.id.btTurnOffAlarm).
setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intentToStop = new Intent(this, LocationPoller.class);
PendingIntent pendingIntentToStop = PendingIntent.getBroadcast
(getApplicationContext(), REQUEST_CODE, intentToStop, 0);
AlarmManager alarmManager = (AlarmManager)
getSystemService(ALARM_SERVICE);
alarmManager.cancel(pendingIntentToStop);
}
});
}
}
Но это не работает, он продолжает поиск местоположения.
Есть какие-нибудь подсказки?
Спасибо.