Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android棒棒糖设备上未触发广播接收器_Android_Broadcastreceiver_Alarmmanager_Android 5.0 Lollipop_Android Pendingintent - Fatal编程技术网

android棒棒糖设备上未触发广播接收器

android棒棒糖设备上未触发广播接收器,android,broadcastreceiver,alarmmanager,android-5.0-lollipop,android-pendingintent,Android,Broadcastreceiver,Alarmmanager,Android 5.0 Lollipop,Android Pendingintent,下面是设置广播接收器的代码 PendingIntent pendingIntentScheduler = PendingIntent.getBroadcast(context, REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context

下面是设置广播接收器的代码

        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);
和BroadcastReceiver类的代码

@Override
public void onReceive(Context context, Intent intent) {
     this.context = context;        
     Log.d("onReceive", "this is broadcast reciever");        

}
Android清单许可证

  <uses-permission android:name="android.permission.WAKE_LOCK" />
  <application>
  <receiver android:name=".name.recieverName" >
        <intent-filter>
            <action android:name="com.intentIWantToOpenOnRecievingBroadcast" />
        </intent-filter>
    </receiver>
   </application>

这段代码在19年前与api配合良好。它不适用于棒棒糖api 21。有人找到了解决此问题的方法吗?

试试这个

AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

        Intent intent = new Intent(context, AlarmReceiver.class);
        PendingIntent pi = PendingIntent.getBroadcast(context, AlarmActive, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        if (Build.VERSION.SDK_INT >= 19)
            am.setExact(AlarmManager.RTC_WAKEUP, alarmTime.getTimeInMillis(), pi);
        else
            am.set(AlarmManager.RTC_WAKEUP, alarmTime.getTimeInMillis(), pi);
看看 或

使用“设置精确”而不是“设置”。另外,您使用的是“WakefulBroadcastReceiver”还是“BroadcastReceiver”?在旁注中,我最近提出了一个可能相关的问题:Thanx用于响应..我正在使用BroadcastReceiver,我应该使用WakefulBroadcastReceiver吗?.是的,使用WakefulBroadcastReceiver,尽管我不确定这是否会改变像上面这样简单的代码的行为。但是,如果您想从接收器启动service intent,建议使用它(调用startWakefulService和completeWakefulIntent函数)。有关于此的解决方案吗?我现在也有同样的问题。。我的代码可以使用多年,直到我把我的设备换成安卓5