我想從通知發送信息調用活動,而從我的活動,我得到空。Android通知PendingIntent額外null
通知的代碼是:
private void showNotification() {
Intent resultIntent = new Intent(this, MainActivity.class);
if (D)
Log.d(TAG, "Id: " + Id);
resultIntent.putExtra("ineedid", deviceId);
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
stackBuilder.addParentStack(MeterActivity.class);
stackBuilder.addNextIntent(resultIntent);
PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0,
PendingIntent.FLAG_UPDATE_CURRENT);
// Bundle tmp = resultIntent.getExtras();
// if (tmp == null) {
// Log.d(TAG, "tmp bundle is null");
// } else {
// long id = tmp.getLong("ineedid", -1);
// Log.d(TAG, "tmp id : " + id);
// }
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
BLEMessengerService.this)
.setSmallIcon(R.drawable.ic_action_search)
.setContentTitle("Event tracker")
.setContentText("Events received").setOngoing(true)
.setContentIntent(resultPendingIntent)
.setWhen(System.currentTimeMillis());
int mId = R.string.service_notification_start_service;
mNM.notify(mId, mBuilder.getNotification());
}
代碼獲得從主要活動意向信息;
Bundle extras = getIntent().getExtras();
if (extras != null) {
long deviceID = getIntent().getLongExtra("ineedid",
-1);
if (ID == -1) {
if (D)
Log.i(TAG_D, "Wrong Id received.");
finish();
} else {
device = dataSource.getDeviceByID(deviceID);
if (D)
Log.i(TAG_D, "Get the id.");
}
} else {
if (D)
Log.d(TAG_D, "Bundle is null");
finish();
}
我已在通知得到通知之前進行了驗證,捆綁包不爲空,並且它的id爲extras。 雖然,當我試圖從意圖中獲取它時,它消失了。幫幫我。
我也嘗試添加 「resultIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);」,但沒有工作。 – antonio081014
有沒有原因你不使用'resultPendingIntent.getExtras()'? – PearsonArtPhoto
我剛剛做了這些行來檢查我的pendingIntent是否有額外功能,並驗證了它具有我放在那裏的內容。 – antonio081014