我正在尝试将我的通知意图中的一些数据传递给我的一项活动。但不知何故,该值没有正确填充。
我的通知代码是从哪里调用活动的-
Long rowId = intent.getExtras().getLong(TasksDBAdapter.KEY_ROWID);
// Status bar notification Code Goes here.
NotificationManager mgr = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
Intent notificationIntent = new Intent(this, ReminderModificationActivity.class);
notificationIntent.putExtra(TasksDBAdapter.KEY_ROWID, rowId);
Log.i(TAG,"rowId in doReminderWork" + rowId);
PendingIntent pi = PendingIntent.getActivity(this, 0, notificationIntent,PendingIntent.FLAG_ONE_SHOT);
在这段代码中,Log.i 值给出了正确的 rowId 值,但我在 ReminderModificationActivity.class 中没有得到正确的值。onCreate() 其中有以下代码 -
mRowId = savedInstanceState != null ? savedInstanceState.getLong(TasksDBAdapter.KEY_ROWID) : null ;
registerButtonListenersAndSetDefaultText();
Log.i(TAG, "mROwId in onCreate ReminderNotification-->" + getIntent().getExtras().getLong("RowId"));
//code to check what row id have been passed
if(getIntent() != null) {
Bundle extras = getIntent().getExtras();
mRowId = extras != null ? extras.getLong("RowId") : -1;
// Do stuff with the row id here
if(mRowId != -1){
//code if RowId valid
}
}
Log.i(TAG, "mROwId in onCreate ReminderNotification again-->" + mRowId);
在此代码中,即使我从通知代码中发送了值 4,Log.i 也会返回值 0。请告诉我我在哪里犯了错误。让我知道是否需要任何其他详细信息。
谢谢,雷