我正在尝试将我的通知意图中的一些数据传递给我的某个活动。但不知何故,价值没有正确填充。
我的通知代码来自调用活动的地方 -
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。请告诉我我犯的错误。如果需要任何其他细节,请告诉我。
谢谢, 射线
答案 0 :(得分:0)
检查您用于获取数据的密钥。设置它时,使用常量变量,但是当你得到它时,你使用硬编码字符串。这样做很容易搞砸。