2017-01-31 10 views
0

Androidアプリケーションが(自分のアクティビティと同じプロセスで)ローカルフォアグラウンドサービスを開始します。たとえシステムがメモリ不足のために活動を破壊したとしても、サービスは生き続ける必要があります。アンドロイドサービスの再起動後に静的データが失われる

次回ユーザーがアプリを起動すると、サービスが実行されているかどうかを確認する必要があります。 私はサービスクラスのpublic static boolean Started = false;フラグに状態を保存しようとしました(私は悪い習慣であることを知っています)。

私のアクティビティは、サービスが実行されているプロセスから開始されます。静的なコンストラクタは1と呼ばれていると私は考えました。だから、私はこのフラグをアクティビティでチェックすることができます。ただし、静的データはデフォルトに再初期化されます。

私はこの現象について誰かに教えてもらえますか?ここ

+0

その場合は罰金リスタートサービスを実行していますか? –

+0

私はインテントサービスを使用しているので、アプリがフォアグラウンドになるたびにサービスを開始します。 –

+0

回答を書いたので、簡単にコピーできます。 –

答えて

0

はアプリが

public void storeLastLocation() { 
    if (!isStoreLocationActive){ 
     Log.d("IQ MA", "storeLastLocation() called"); 

     String access_token = Configs.access_token; 
     Intent intent = new Intent(MainActivity.this, StoreLocationService.class); 
     intent.putExtra("access_token", access_token); 
     stopService(intent); 
     startService(intent); 

     isStoreLocationActive = true; 
    } 
} 

をforground来るとき、私はサービスを再起動する方法を一例に過ぎないアプリが前面に来た場合、サービスの店舗ブールは

関連する問題