вы хотите установить приемник BOOT, который запускает вашу службу ALARM (которая будет периодически срабатывать и убедитесь, что ваша служба запущена), когда устройство загружается. Приемник ALARM должен просыпаться каждую минуту (или так), чтобы увидеть, что ваша Служба не была очищена Android (что будет происходить время от времени).
[EDIT]
Вы хотите BootReceiver начать свой сигнал, который будет выглядеть следующим образом:
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
PendingIntent pendingIntent =
PendingIntent.getBroadcast(context, 0, new Intent(context, AlarmReceiver.class), 0);
alarmMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime() + 2000, 60000, pendingIntent);
}
}
И alarmReceiver будет выглядеть следующим образом:
public class AlarmReceiver extends BroadcastReceiver {
private String TAG = "AlarmReceiver";
// onReceive must be very quick and not block, so it just fires up a Service
@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, MyLovelyService.class);
PendingIntent.getService(context, 0,i, 0).send();
}
}
и наконец, это необходимо включить в ваш манифест:
<receiver android:name=".BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<receiver android:name=".AlarmReceiver" />
Спасибо Dredel. Но моя проблема заключается в том, что Сервис убивает себя после закрытия приложения. Как я могу предотвратить это? – dracula
Как начать обслуживание? Если у вас есть сервис, запущенный ALARM (а не из вашего приложения), он не будет связан с вашей деятельностью каким-либо образом ... Я отредактирую свой ответ, чтобы показать вам пример ... –
Я начинаю мой сервис в применении командой startervice. Я попробую ваш код. Это выглядит логично. Спасибо ! – dracula