Android 安卓服务1分钟后再次呼叫自己

Android 安卓服务1分钟后再次呼叫自己,android,service,alarmmanager,Android,Service,Alarmmanager,我正在尝试做一个服务,一分钟后醒来并再次呼叫自己(在这个例子中,我知道这对电池有害) 以下是代码的一部分: public class SpeechService extends Service { @Override public void onCreate() { super.onCreate(); setUpNextAlarm(); } public void setUpNextAlarm(){ Intent

我正在尝试做一个服务,一分钟后醒来并再次呼叫自己(在这个例子中,我知道这对电池有害)

以下是代码的一部分:

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中尝试过了,它可以工作,但我需要它在正常服务中工作:(

谢谢你使用

 PendingIntent.getService
不是


你有广播意图。

我刚使用了一个服务和一个IntentService。IntentService使用了AlarmManager,然后调用了该服务。

我认为你应该在创建函数中调用super.oncreate。另外,我认为你最好使用IntentService,它更容易管理哦,对不起,我有super.onCreate();在create函数中,我只是删除了一些无用的代码以使其更简单,但我错误地删除了这些代码
 PendingIntent.getBroadcast