为什么我的AlarmManager setRepeating没有重复?

时间:2011-08-21 12:37:14

标签: android alarmmanager

我创建了一个应该重复运行并启动服务的AlarmManager。我的问题是它只运行一次。我无法弄清楚出了什么问题。现在我已将AlarmManager的创建附加到一个按钮。

这是MenuActivity类的一部分:

private void startUpdateService() {
    Log.i(TAG, "Registering AlarmManager");

    Intent service = new Intent(MenuActivity.this, UpdateService.class);
    pendingIntent = PendingIntent.getService(MenuActivity.this, 0, service, 0);

    AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);

    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 1000, 10*1000, pendingIntent);

}

@Override
public void onClick(View view) {
    switch(view.getId()) {
    case R.id.button_calendar:
        Intent calendarIntent = new Intent(this, CalendarActivity.class);
        if(Util.isOnline(this)){
            startActivity(calendarIntent);
        }else {
            Toast.makeText(MenuActivity.this, R.string.toast_is_online, Toast.LENGTH_LONG).show();
        }
        break;
    case R.id.button_settings:
        startUpdateService();           
        Toast.makeText(MenuActivity.this, "Startet alarm", Toast.LENGTH_LONG).show();           
        break;
    }

}

初始警报工作正常,但不会重复。 谁知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

我看到直接从闹钟运行服务的问题很少。我也有。我做了什么,是由广播接收器取代服务,它启动了服务。你为什么不尝试呢?它在Advanced Android中得到了很好的解释,第1版可以在CC许可证上获得。