Android 广播丢失捆绑包数据
Android broadcast loosing Bundle data
我的应用程序中有服务和 Activity。
在服务中我这样做:
Bundle data = new Bundle();
data.putString("message_id", "123");
data.putString("user_id", "321");
Intent dataIntent = new Intent(BROADCAST_ACTION).putExtra("message_read", data);
sendBroadcast(dataIntent);
在 Activity 我收到广播并尝试解析它:
if (intent.hasExtra("message_read")) {
Bundle messageReadData = intent.getBundleExtra("message_read");
updateItem(messageReadData.getString("message_id"), messageReadData);
}
但是这里的messageReadData没有任何数据。所以 messageReadData.getString("message_id") 将为 Null。为什么会这样?
我明白了,在我从 Bundle 中获取一些值之前,调试器看不到 Bundle 的内容。所以,我说 messageReadData.getString("message_id") 将为 Null 是错误的。这是不对的。似乎 Bundle 或 Intent 支持延迟解析。
我的应用程序中有服务和 Activity。 在服务中我这样做:
Bundle data = new Bundle();
data.putString("message_id", "123");
data.putString("user_id", "321");
Intent dataIntent = new Intent(BROADCAST_ACTION).putExtra("message_read", data);
sendBroadcast(dataIntent);
在 Activity 我收到广播并尝试解析它:
if (intent.hasExtra("message_read")) {
Bundle messageReadData = intent.getBundleExtra("message_read");
updateItem(messageReadData.getString("message_id"), messageReadData);
}
但是这里的messageReadData没有任何数据。所以 messageReadData.getString("message_id") 将为 Null。为什么会这样?
我明白了,在我从 Bundle 中获取一些值之前,调试器看不到 Bundle 的内容。所以,我说 messageReadData.getString("message_id") 将为 Null 是错误的。这是不对的。似乎 Bundle 或 Intent 支持延迟解析。