サービスを実装したアプリケーションを開発していますが、アプリケーションを終了すると、サービスが停止し (onDestroy()
呼び出されることはありません)、再度開始されます (OnCreate()
呼び出されます)。
実際、アプリケーションの状態に関係なく、作成されたサービスを停止したくありません。サービスonCreate()
が再度呼び出されると、サービスは以前に処理されたデータを失います。試してみSTART_STICKY
ましたが、うまくいきません。
では、どうすればサービスを実行し続けることができますか?
これが私のサービスコードです。
public class ddservice extends Service{
public void onCreate() {
super.onCreate();
Log.e("dservice", "onCreate");
/*here i am processing some important data in
background thread*/
}
@Override
public void onDestroy() {
super.onDestroy();
Log.e("ddservice", "onDestroy");
}
@Override
public void onStart(Intent intent, int startid) {
super.onStart(intent, startid);
Log.e("ddservice", "onStart");
}
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
Log.e("ddservice", "onStartCommand");
return START_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}//service class ends here
そして、私はこのサービスを mainActivity から開始しています。
startService(new Intent(this, ddservice.class));