Я просто использовал диспетчер аварийных сигналов, чтобы инициировать широковещательный приемник и этот широковещательный приемник, обращающийся к службе. Весь этот процесс вызывается снова и снова через определенный промежуток времени, как я уже установил в своей службе будильника. Но все же я столкнулся с проблемой, что моя служба убивает через один или два дня на каком-то устройстве Android. Следующий мой код.Почему служба убивает через один или два дня?
Здесь я звоню в эфир.
Intent myIntent = new Intent(NotificationFirstActivity.this,
MyReceiver.class);
pendingIntent = PendingIntent.getBroadcast(
NotificationFirstActivity.this, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, calendar.getTimeInMillis(),
pendingIntent);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(), 1 * 60 * 1000, pendingIntent);
И это мой приемник вещания, как описано ниже.
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent service1 = new Intent(context, MyAlarmService.class);
context.startService(service1);
if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
Intent pushIntent = new Intent(context, MyAlarmService.class);
context.startService(pushIntent);
}
}
}
Ниже приведена моя манифестная часть, например.
<service android:name="MyAlarmService"
android:enabled="true" />
<receiver android:name="MyReceiver"/>
<receiver
android:name="com.google.android.gcm.GCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.QUICKBOOT_POWERON"/>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="com.phoenixmanage" />
</intent-filter>
</receiver>
<service android:name="com.phoenixmanage.GCMIntentService" />
Но я уже использовал onbootreceiver в своей трансляции. –
проверьте перезагрузку, вы получите журнал получателя или нет. – NovusMobile
Даже после перезагрузки мой сервис работает, основная проблема заключается в том, что после двух или трех дней сервис автоматически уничтожает. –