广播接收器在几天后停止接收(本地通知)

时间:2014-12-22 08:12:52

标签: android broadcastreceiver alarmmanager android-pendingintent android-alarms

我正在使用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);
和BroadcastReciever上的收件人..

@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>

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,不是合法的,而是旁路。可能这会对某人有所帮助。我所做的是每隔24小时重复一次警报,重新启动所有待处理的意图。因为未决意图的生命是2-3天(根据我在我的应用程序中找到的)。这导致每天创建新的Pending Intents。