来自通知的意图数据未通过

时间:2012-10-28 14:51:16

标签: android android-intent

我正在尝试将我的通知意图中的一些数据传递给我的某个活动。但不知何故,价值没有正确填充。

我的通知代码来自调用活动的地方 -

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。请告诉我我犯的错误。如果需要任何其他细节,请告诉我。

谢谢, 射线

1 个答案:

答案 0 :(得分:0)

检查您用于获取数据的密钥。设置它时,使用常量变量,但是当你得到它时,你使用硬编码字符串。这样做很容易搞砸。