У меня есть сервис (должным образом объявленный в файле манифеста), который после onDestroy()
планирует начать снова через минуту через AlarmManager
. Однако служба не запускается, хотя onDestroy()
работает правильно. Что может быть неправильным?Служба Android, запланированная на AlarmManager, не запускается
Код планирования:
@Override
public void onDestroy() {
BroadcastReceiver br = new BroadcastReceiver() {
@Override
public void onReceive(Context c, Intent i) {
c.startService(new Intent(c, MyService.class));
}
};
registerReceiver(br, new IntentFilter("xxxx"));
PendingIntent pi = PendingIntent.getBroadcast(this, 0, new Intent("xxxx"), 0);
AlarmManager am = (AlarmManager)(this.getSystemService(Context.ALARM_SERVICE));
am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + ONE_MINUTE, pi);
Log.i("onDestroy", "Service scheduled.");
unregisterReceiver(br);
super.onDestroy();
}
Служба декларации в файле манифеста:
<service
android:name="com.xxxx.MyService"
android:exported="true">
</service>
Поскольку вы создаете ресивер в onDestroy, это может привести к разрушению приемника. – neo