我想每次Intent.ACTION_BATTERY_CHANGED都會調用Broadcastreceiver,以便我可以跟蹤一些數據。如何獲得可靠的BroadcastReceiver
我現在擁有的一切:
public class ReceiverApplication extends Application {
@Override
public void onCreate() {
// Register Receiver
}
public static BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Start Service to progress data
}
};
}
,直到我用最近的應用程序「任務管理器」刷卡離開我的優先選擇屏幕或我的主要活動之一這工作得很好。然後BroadcastReceiver不再被調用。如果我開始執行其中一項活動,ReceiverApplication的onCreate()會被調用並重新開始工作。
我可以通過運行一個空服務來解決這個問題。該服務似乎並沒有通過刷掉活動而被殺死,並且onCreate()在一段時間後被調用,並且在沒有做任何事情的情況下重新啓動BroadcastReceiver。這裏的問題是我不想讓服務一直運行。
那麼,只要用戶想要,我怎樣才能在任何可以接收廣播的Acitivity或Service之外獲得Broadcastreceiver?
看到這個有用的答案在SO:http://stackoverflow.com/questions/7257378/android-how-to-force-restart-service-os-killing-on-low-memory-behavior以及這一個:http://stackoverflow.com/a/7877466/490961 –
@MarvinLabs謝謝,你到底是什麼意思?因爲如果可能的話,我不想使用服務。 – user1566228