2

私の IntentService クラスの onHandleIntent で、20 秒後に実行する必要がある runnable を含むハンドルを作成しました。残念ながら、私のサービスはこの期間の前にスリープ状態になるか、破棄されます。CountDownTimer でも試しましたが、同じ問題がありました。onHnadleIntent を待機させることはできますか? ありがとうございました!

これはコードです:

 public class MyService extends IntentService {
    //...
    @Override
    protected void onHandleIntent(Intent workIntent) {
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            Log.i("20 seconds later","I am here");
            }
        }, 20000);
        //...
   }
   //...
}
4

2 に答える 2

4

を使用しないでくださいIntentService。シナリオ用に設計されていません。通常のを使用してくださいService。コードを に入れますonStartCommand()。メソッドの最後で、インスタンスをrun()呼び出してシャットダウンします。stopSelf()Service

于 2014-01-28T13:42:34.873 に答える