繁体   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