Intent not passing data to BroadcastReceiver of AlarmManager



我试图通过PendingIntent of AlarmManager将数据传递给BroadcastReceiver

在这个例子中,我试图传递一个字符串和一个Parcelable对象,但是当我试图在BroadcastReceiver中读取它们时,我得到null

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Intent i = new Intent (this, ReminderBroadcast.class);
i.putExtra("ROUTINE", r);
i.putExtra("MESSAGE", "Example string");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this,1234,i,PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 10000, pendingIntent);

BroadcastReceiver

public class ReminderBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.i(LOG_TAG,"notification code is "+ getResultCode());
Log.i(LOG_TAG, "message is: "+ intent.getStringExtra("MESSAGE"));
Log.i(LOG_TAG, "routine " + ((Routine)(intent.getParcelableExtra("ROUTINE"))).getRoutineName());

}
}

清单

<activity android:name=".SetupNotificationActivity" />
<receiver android:name=".support.ReminderBroadcast" 
android:enabled="true" />

这让我发疯了,因为在互联网上找到的所有解决方案都建议把PendingIntent。FLAG_UPDATE_CURRENT来解决问题,但这似乎不起作用。

任何建议吗?由于

对于那些可能遇到同样问题的人,我找到了解决方法。

这个问题是由物品的包装问题引起的,但是没有产生任何异常。

删除后一切正常

感谢您的支持

最新更新