Если ваш BroadcastReceiver
должен получить намерения даже в случае, когда приложение будет убито, вы должны зарегистрироваться на нужные цели через AndroidManifest.xml
.
Таким образом, BroadcastReceiver
будет находиться в независимости от вашего жизненного цикла приложения.
Таким образом, ваш BroadcastReceiver
будет уведомлен автоматически Android, как только желаемая цель транслировалась некоторым приложением
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest>
...
<application>
....
<receiver android:name=".MyCustomBroadcastReceiver">
<intent-filter>
<action android:name="com.example.mytestapp.MY_CUSTOM_INTENT" />
</intent-filter>
</receiver>
</application>
</manifest>
MyCustomBroadcastReceiver.java
public class MyCustomBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent != null) {
String action = intent.getAction();
if(action != null) {
if(action.equals("com.example.mytestapp.MY_CUSTOM_INTENT")) {
// DO YOUR STUFF
}
}
}
}
}
Создание Alarm Intent
Затем при создании управляющего сигнала, используйте код ниже:
Intent intentForAlarmManager = new Intent("com.example.mytestapp.MY_CUSTOM_INTENT");
PendingIntent.getBroadcast(/* CONTEXT */, /* ID */ , intentForAlarmManager, /* FLAGS */));
Как вы зарегистрировать приемник? –
Это в манифесте. Я не уверен, какая часть ломается, чтобы быть честным, является ли это приемником, загрузкой данных, намеренным сервисом или логикой уведомлений. Он работает иногда, но иногда нет. Угадайте, нужно создать регистратор, который пишет в БД и посмотреть, какая логика действительно запущена. – allanx2000