0

サービスを頻繁に実行するようにスケジュールしようとすると問題が発生します。起動時にサービスを開始しましたが、スケジュールが開始される理由は何であれ、サービスを何度も開始することです。

public class PPPService extends Service {

  public void onStart(Intent intent, int startId) {
      //TODO do something useful
      Log.v("TEST", "Service started");

      // Schedule the alarm!
     PendingIntent mAlarmSender = PendingIntent.getService(this, 0, intent, 0);
      AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
      am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, AlarmManager.INTERVAL_FIFTEEN_MINUTES, mAlarmSender);  

      this.stopSelf();
      }
}

解決済み:これは、サービススケジュール自体を作成する代わりに、スケジューラーを作成することで解決しました。

4

1 に答える 1

0

あなたはPendingIntentで、サービスを開始したインテントとともにすぐに強制終了されるサービスのコンテキストを送信しています。これはまったく予測できないことだと思います。次のような保留中のインテントを取得してみてください。

mAlarmSender = PendingIntent.getService(getApplicationContext(), 0, new Intent(getApplicationContext(), PPPService.class), 0);
于 2013-03-06T17:30:25.477 に答える