私は Service を作成しようとしていますが、1 分後に目を覚まし、自分自身を再度呼び出します (この例では、バッテリーに悪いことがわかっています)。
コードの一部を次に示します。
public class SpeechService extends Service {
@Override
public void onCreate() {
super.onCreate();
setUpNextAlarm();
}
public void setUpNextAlarm(){
Intent intent = new Intent(SpeechService.this, this.getClass());
PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, 0);
long currentTimeMillis = System.currentTimeMillis();
long nextUpdateTimeMillis = currentTimeMillis + 1 * DateUtils.MINUTE_IN_MILLIS;
// Schedule the alarm!
AlarmManager am = (AlarmManager)ContextManager.getApplicationContext().getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP,nextUpdateTimeMillis, pendingIntent);
Log.e("test","I am back!");
}
protected void onHandleIntent(Intent intent)
{
Log.e("test","I am back!");
setUpNextAlarm();
}
}
ご覧のとおり、サービスの作成時に setUpNextAlarm を呼び出しています。最後にログが表示されますが、サービスが再度呼び出されることはありません。私はこれをIndentServiceで試しましたが、動作しますが、通常のサービスで動作する必要があります:(。
ありがとうございました