AlarmManager 不触发 PendingIntent - Android

AlarmManager does not fire PendingIntent - Android

我做了一个 class 来设置一个 AlarmManager 并用 BroadcastReceiver 接收它,但是它不起作用。我尝试了不同的类型来设置 de AlarmManager,但没有任何效果。当然,如果我以其他方式调用它,BroadcastRecevier 工作正常。

public class AlarmBroadcastReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        if(intent==null)
        {
            Log.d("INFO", "Intent is null");
        }

        if(context==null)
        {
            Log.d("INFO", "Context is null");
        }

        if(intent!=null && context!=null)
        {
            Log.d("INFO", "AlarmManager fired...");
        }
    }

    public static void startAlarm(Context context)
    {
        if(PendingIntent.getBroadcast(context, 0, new Intent(context, AlarmBroadcastReceiver.class), PendingIntent.FLAG_NO_CREATE)==null)
        {
            Log.d("INFO", "AlarmManager set...");
            AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
            alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, SystemClock.elapsedRealtime(), 10000, PendingIntent.getBroadcast(context, 0, new Intent(context, AlarmBroadcastReceiver.class), 0));
        }
    }
}

希望你能帮帮我!谢谢 :D

您正在使用 RTC_WAKEUP,但您的时基表示为 SystemClock.elapsedRealtime()。那些不匹配。使用 ELAPSED_REALTIME_WAKEUP 或更改事件的时间,使其基于 System.currentTimeMillis() 或使用它的事物(例如 java.util.Calendar)。

除此之外,确认您的 AlarmBroadcastReceiver 已在清单中注册,并查看是否有任何 LogCat 消息与您的问题相关。