簡體   English   中英

AlarmManager不會觸發PendingIntent-Android

[英]AlarmManager does not fire PendingIntent - Android

我已經創建了一個類來設置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消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM