1
我有一個應用程序設置爲顯示從數據庫中的條目作爲通知,當它收到廣播。該數據庫條目的_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);
從那裏的PendingIntent被扔進一個通知,並且該活動只是使用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
不知何故,該應用程序正在嘗試(和失敗)顯示完全錯誤的項目。有人能告訴我爲什麼額外的東西正在被改變嗎?
我遇到了與字符串相同的問題,而不是longs。希望這裏有一個更廣泛的解決方案,而不僅僅是一個Long特定的解決方法 – Chicowitz 2014-11-05 00:25:17