我正在使用BroadCastReciever触发警报,这种警报在2-3天内正常工作,之后它停止工作,我没有收到我的BroadcasstReciever中的任何警报。 是否存在Pent Intent的lifeSpan? 实际上我创建了30天的警报。我正在使用PendingIntents。这是PendingIntent
的代码
PendingIntent pendingIntentScheduler = PendingIntent.getBroadcast(context, REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, time, pendingIntentScheduler);
@Override
public void onReceive(Context context, Intent intent) {
this.context = context;
Log.d("onReceive", "this is broadcast reciever");
}
Android Manifest Permission ..
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
<application>
<receiver android:name=".medicine.modal.AlarmReceiver" android:permission="android.permission.WAKE_LOCK"
android:enabled="true" android:exported="true" android:process=":remote">
<intent-filter>
<action android:name="com.healthsaverz.nimap.healthmobile.healthsaverz.mainscreen.controller.NotificationActivity" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
答案 0 :(得分:0)
我找到了一个解决方案,不是合法的,而是旁路。可能这会对某人有所帮助。我所做的是每隔24小时重复一次警报,重新启动所有待处理的意图。因为未决意图的生命是2-3天(根据我在我的应用程序中找到的)。这导致每天创建新的Pending Intents。