Android 多次传递同一个额外的意图,不知何故,这些额外的不';不匹配

Android 多次传递同一个额外的意图,不知何故,这些额外的不';不匹配,android,android-intent,android-notifications,extra,extras,Android,Android Intent,Android Notifications,Extra,Extras,我有一个应用程序,它被设置为在接收到广播时显示来自数据库的条目作为通知。该数据库条目的_id作为广播目的的额外信息传递。单击通知时,应用程序应该在活动中显示该数据库条目 下面是来自广播接收器的代码示例: Long itemID = intent.getLongExtra("com.my.app.receiver.ID", -1); MyDatabaseHelper helper = new MyDatabaseHelper(context); Log.i("MyApp", "Received i

我有一个应用程序,它被设置为在接收到广播时显示来自数据库的条目作为通知。该数据库条目的_id作为广播目的的额外信息传递。单击通知时,应用程序应该在活动中显示该数据库条目

下面是来自广播接收器的代码示例:

Long itemID = intent.getLongExtra("com.my.app.receiver.ID", -1);
MyDatabaseHelper helper = new MyDatabaseHelper(context);
Log.i("MyApp", "Received item "+itemID);
Intent pending = new Intent(context, NotifyDisplay.class);
pending.putExtra("com.my.app.NOTIFY", itemID);
PendingIntent onNotifyClick = PendingIntent.getActivity(context,
                    1234567, pending, PendingIntent.FLAG_ONE_SHOT);
从那里,PendingEvent被抛出到一个通知中,活动只使用
getIntent().getLongExtra()
来获取它。然而,LogCat展示了一个不同的故事

07-25 23:45:00.046: I/MyApp(19630): Received item 1
07-25 23:45:05.456: D/dalvikvm(19630): GC_EXPLICIT freed 47K, 52% free 3213K/6599K, external 6314K/7884K, paused 64ms
07-25 23:45:29.705: I/Notification(19630): Displaying task 0
07-25 23:45:29.755: D/AndroidRuntime(19630): Shutting down VM
07-25 23:45:29.755: W/dalvikvm(19630): threadid=1: thread exiting with uncaught exception (group=0x40015560)
07-25 23:45:29.847: E/AndroidRuntime(19630): FATAL EXCEPTION: main

不知何故,该应用程序现在正试图(但失败)显示完全错误的项目。有人能告诉我为什么在传递额外数据时会对其进行更改吗?

我似乎已经通过使用
itemID.longValue()
作为我放入
挂起的额外数据解决了这个问题。显然,由于
getLongExtra()
获取原语值,因此输入
Long
而不是
Long
会导致问题。

我对字符串而不是Long有同样的问题。希望这里有一个更广泛的解决方案,而不仅仅是一个长期的具体解决方案