Intent.ACTION_BATTERY_CHANGED がブロードキャストされるたびに 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
}
};
}
これは、最近のアプリ「タスクマネージャー」を使用して、好みの画面または主なアクティビティの1つをスワイプするまでは正常に機能します。その後、BroadcastReceiver はもう呼び出されません。アクティビティの 1 つを開始すると、ReceiverApplication の onCreate() が呼び出され、再び機能し始めます。
空のサービスを常に実行することで、これを回避できます。アクティビティをスワイプしてもサービスが強制終了されないようで、しばらくすると onCreate() が呼び出され、何もせずに BroadcastReceiver が再起動されます。ここでの問題は、サービスを常に実行したくないということです。
では、ユーザーが望む限りブロードキャストを受信できるアクティビティまたはサービスの外部でブロードキャストレシーバーを取得するにはどうすればよいですか?