Android SetInexactRepeating 根本没有触发

标签 android android-intent alarmmanager repeat android-pendingintent

我有一个 android setInexactRepeating 放在我的 onCreate 中,它永远不会触发。我在其中有一个日志,以确保它确实在执行,并且似乎没有触发,以及我为它计划的事件。我希望它每 10 秒响一次,但即使是第一次,它似乎也没有响过。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Log.d("Restart", "First");
    Intent toRun = new Intent(this, AlarmRestart.class);
    PendingIntent pendingToRun = PendingIntent.getBroadcast(this, 0, toRun, 0);
    AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
    am.cancel(pendingToRun); 
    am.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, System.currentTimeMillis(), 10000L, pendingToRun);

    Log.d("Restart", "Second");
}

这是在另一个文件中:

public class AlarmRestart extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent) {
        Log.d("Restart", "Third");
    }
}

这就是“adb shell dumpsys alarm”所说的

com.packageName.restart
5715ms running, 64 wakeups
3 alarms: flg=0x14 cmp=com.packageName.restart/.AlarmRestart
61 alarms: flg=0x14 cmp=com.packageName.restart/.reciever.AlarmRestart

最佳答案

AlarmRestart 是一个 BroadcastReceiver。它不是服务。但是您正在尝试使用 getService() PendingIntent。这是行不通的。将 getService() 更改为 getBroadcast(),您的运气应该会更好。

关于Android SetInexactRepeating 根本没有触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11728075/

相关文章:

android - 错误 : Theme. 半透明和 FLAG_ACTIVITY_REORDER_TO_FRONT

具有特定日期的Android闹钟设置

android - 当用户从最近的应用程序列表中删除应用程序时,如何取消警报管理器警报?

android - 如何检查我的 EditText 字段是否为空?

java - Android - 如何从子 SurfaceView 访问 fragment 中的方法?

java - 应用程序运行时不显示任何内容

安卓闹钟不工作

java - {Facebook 登录} java.lang.NoClassDefFoundError : android. support.v4.content.LocalBroadcastManager

android - 如何在 Google Glass 上启动常规 Activity

android - Activity 拒绝开始