簡體   English   中英

待定AlarmManager意圖在系統警報設置時不會觸發

[英]Pending alarmManager intent dont fire up when system alarm set up

calendar.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);  
calendar.set(Calendar.HOUR_OF_DAY, 1);
PendingIntent pi = PendingIntent.getService(context, 0, new Intent(context,MyClass.class),PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 7*24*60*60*1000, pi);

我有這個簡單的未決重復警報,只有在未設置系統android警報時,它才能正常工作。 在系統“警報”應用程序中設置警報的時間無關緊要,看起來該系統應用程序停止了我所有待處理的意圖。 知道如何調試嗎? 什么會導致此問題? 我想與系統警報並行使用。

確保您有權限

<uses-permission android:name="com.android.alarm.permission.SET_ALARM" />

對於調試:

在活動MyClass活動中重寫onNewIntent() ,如下所示:

@Override
onNewIntent(Intent intent){
    android.os.Debug.waitForDebugger();
    if(intent.hasExtra("alarm")){           //Put a break point here
        Log.d("Alarm fired","yes");
    }
}

創建您的PendingIntent來觸發警報,如下所示:

Intent intent=new Intent(context,MyClass.class);
intent.putExtra("alarm","yes");
PendingIntent pi = PendingIntent.getService(context, 0, intent,0);

因此,當您的警報觸發時,控件將進入onNewIntent並等待您連接調試器。 那時,請轉到android studio中的附加調試器按鈕,然后將調試器附加到您的應用程序。 這就是您將知道警報已被觸發的方式。

暫無
暫無

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

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