1

サービスを実装したアプリケーションを開発していますが、アプリケーションを終了すると、サービスが停止し (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));
4

1 に答える 1

0

サービスをフォアグラウンドとして開始する必要がありますService.startForeground(int, Notification)

于 2013-01-09T10:29:11.603 に答える