如果您的BroadcastReceiver
必須接收意圖,即使應用程序被殺害,您應該通過AndroidManifest.xml
註冊到所需的意圖。
這樣,BroadcastReceiver
將獨立於您的應用程序生命週期。
這樣,你的BroadcastReceiver
將自動安卓只要所需的意圖是由一些應用
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
}
}
}
}
}
創建報警意圖
然後,創建報警管理器時,使用下面的代碼:
Intent intentForAlarmManager = new Intent("com.example.mytestapp.MY_CUSTOM_INTENT");
PendingIntent.getBroadcast(/* CONTEXT */, /* ID */ , intentForAlarmManager, /* FLAGS */));
你是怎麼註冊的接收器? – 2016-07-24 15:48:21
它在清單中。我不確定哪個部分不管是接收者,數據下載,意向服務還是通知邏輯,都是不誠實的。它有時有效,但有時候不行。猜測需要創建一個寫入數據庫的記錄器,並查看哪個邏輯實際上被觸發。 – allanx2000