Android 7 BroadcastReceiver onReceive intent.getExtras缺少数据

我的应用程序无法在 Android 7上运行.我调用broadcastReceiver.onReceive方法,但缺少intent.getExtras的内容.我已经验证数据已正确加载.这是我的onReceive方法一个片段,其中intent作为参数传递给onReceive.

Bundle bundle = intent.getExtras();
textMessage = bundle.getString("TEXT_MESSAGE");
ArrayList<MyPhoneNumber> phoneNumbersToText = bundle.getParcelableArrayList("PHONE_NUMBERS");

textMessage和phoneNumbersToText都为null.

这是我的清单文件中的一个片段:

<receiver android:process=":remote" android:name="com.friscosoftware.timelytextbase.AlarmReceiver"></receiver>

这是加载数据的片段:

Intent intent = new Intent(context,AlarmReceiver.class);  
intent.putExtra(Constants.TEXT_MESSAGE,scheduledItem.getMessagetoSend());
intent.putExtra(Constants.PHONE_NUMBERS,scheduledItem.getPhoneNumbersToText());    

PendingIntent sender = PendingIntent.getbroadcast(context,getRequestCodeFromKey(key),intent,PendingIntent.FLAG_UPDATE_CURRENT);

// Get the AlarmManager service
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP,selectedDateTime.getTimeInMillis(),sender);

相同的代码在Android 6中运行良好.

有关Android 7需要进行哪些更改的任何想法?

谢谢

解决方法

1,看起来你和我有同样的问题.我将它记录在你评论过的跟踪器( https://code.google.com/p/android/issues/detail?id=216581)上.

我的解决方案是使用SharedPreferences来存储我的自定义对象.然后,当alarmmanager触发时,我运行以下命令将对象取出.
tl; dr,我使用GSON将我的自定义POJO作为字符串序列化/反序列化到SharedPrefs中.例如:

String json = getSharedPrefs(context).getString(NotificationUtility.NEXT_REMINDER_KEY,"No reminder found");
    try {
        Gson gson = new Gson();
        Reminder reminder = gson.fromJson(json,Reminder.class);
        if (reminder != null) {
            return reminder;
        }
    } catch (Exception error) {
        Log.i(TAG,"Error parsing json: " + error.getMessage(),error);
        return null;
    }
    return null;

希望这可以帮助你!

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...