0

2分ごとなど、時間間隔でサービスを実行する必要があります。私はそれをAlarmManagerに登録し、その2分が経過する前にサービスが停止しても問題なく動作しますが、2分以上かかる可能性が非常に高く、この場合はサービスを終了して起動する必要があります新しいもの、どうすればいいですか?

    AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    Intent i = new Intent(getApplicationContext(), Sender.class);
    PendingIntent pi = PendingIntent.getService(getApplicationContext(), 0, i, 0);  
    am.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),1000 * 30, pi);
4

3 に答える 3

0

アラーム マネージャー サービスを開始するには、このコードを使用する必要があります

Intent intent = new Intent(activity.this,Sender.class);
pendingIntent = PendingIntent.getBroadcast(activity.this.getApplicationContext(),1, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),1000 * 30, pendingIntent);

この放送受信機を停止するには、このコードを使用します

Intent intent = new Intent(activity.this,Sender.class);
pendingIntent = PendingIntent.getBroadcast(activity.this.getApplicationContext(), 1,intent, 0);
pendingIntent.cancel() ;
于 2013-08-26T12:31:04.487 に答える
0

onStartCommand 自体にログインを記述する必要があります。サービスが実行されているか、変数を使用していないかを確認します。実行中のサービスで stopSelf メソッドを呼び出す場合は、同じサービスの startservice を再度呼び出します。

于 2013-08-26T12:22:44.733 に答える