Запуск службы в фоновом режиме, как WhatsApp
Я не знаю, почему этот код не работает, я пытаюсь в фоновом режиме, как WhatsApp, который работает вечно и проверяет уведомления.
Но это не работает, я не знаю, где я делаю неправильно.
- Я добавил сервис в Android манифест
<receiver android:name=".Notifications">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.TIMEZONE_CHANGED" />
<action android:name="android.intent.action.TIME_SET" />
<action android:name="com.application.Notifications" />
</intent-filter>
</receiver>
<service android:name=".BackgroundWorker"></service>
- Я создал три класса "BackgroundWorker расширяет IntentService"
`public BackgroundWorker () {super (" androidservice "); }
@Override
protected void onHandleIntent(Intent intent) {
Log.v("BackgroundWorker:","working" );
//user method
createNotification(getApplicationContext(),"BackgroundWorker");
}`
2. класс "Уведомления расширяет BroadcastReceiver"
@Override
public void onReceive(final Context context, Intent intent) {
Log.d("BroadcastReceiver","onReceive");
Intent t = new Intent(context,BackgroundWorker.class);
context.startService(t);
}
3. Я создал третий класс ` Long alertTime = new GregorianCalendar(). GetTimeInMillis() + 1*1000;
Intent notifications = new Intent(this,Notifications.class);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,alertTime,1*1000,PendingIntent.getBroadcast(this,
1,
notifications,
PendingIntent.FLAG_UPDATE_CURRENT));
Log.d("AlarmManager",alarmManager.toString());`
Я не знаю, где я делаю неправильно.
** Хотя я установил 1 секунду для повторения, но все равно я получаю уведомление с интервалом в 5 минут **
И я проверил службу Android, мое приложение не работает, пожалуйста, помогите мне...
06-16 10:25:21.537 9833-9833/ D/BroadcastReceiver: onReceive
06-16 10:25:21.614 9833-12666/D/BroadcastReceiver: createNotification
06-16 10:30:21.245 9833-9833/ D/BroadcastReceiver: onReceive
06-16 10:30:21.376 9833-15746/r D/BroadcastReceiver: createNotification
06-16 10:35:21.209 9833-9833/ D/BroadcastReceiver: onReceive
06-16 10:35:21.283 9833-18645/ D/BroadcastReceiver: createNotification
06-16 10:40:21.179 9833-9833/ D/BroadcastReceiver: onReceive
06-16 10:40:21.224 9833-21479/ D/BroadcastReceiver: createNotification
06-16 10:45:21.188 9833-9833/ D/BroadcastReceiver: onReceive
06-16 10:45:21.246 9833-24302/ D/BroadcastReceiver: createNotification
1 ответ
IntentService останавливается после выполнения кода в onHandleIntent(). Вам необходимо расширить обычный сервис и самостоятельно обрабатывать потоки. Если вы не вызовете stopSelf, служба продолжит работу (возможно, пока система не убьет ее).