2010-09-22 76 views
2

我想從通知欄開始一個活動,但它需要得到一個int。從活動到活動,我只是將一個int插入到intent中,但似乎無法弄清楚爲通知欄添加額外內容的位置?這可能嗎?如果不是,有沒有更好的方法來做到這一點?通知狀態欄中的活動意圖?

public void notifyMe() { 
    int icon = android.R.drawable.presence_away; 
    CharSequence tickerText = "New Task Availible"; 
    long when = System.currentTimeMillis(); 

    Notification notification = new Notification(icon, tickerText, when); 

    Context context = getApplicationContext(); 
    CharSequence contentTitle = "PRISM Task"; 
    CharSequence contentText = "New Task Availible"; 
    Intent notificationIntent = new Intent(this, TextAnswerActivity.class); 
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
    notificationIntent.putExtra("taskId", 20); //unable to retrieve 20 later 

    notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); 

    final int HELLO_ID = 1; 

    mNotificationManager.notify(HELLO_ID, notification); 
} 

如何,我檢索:

Intent myIntent = getIntent(); 
System.out.println("#######TaskID from Intent ===== " + myIntent.getIntExtra("taskId", -1)); 
+0

你怎麼想找回?你也可以把這個代碼放到嗎? – Shouvik 2010-09-22 04:58:38

+0

我在那裏補充說。它只是打印出-1 – FuegoFingers 2010-09-22 05:30:37

回答

4

你必須調用創建的PendingIntent這需要notificationIntent作爲參數之前notificationIntent.putExtras(...)。試試這個代碼了:

 Intent notificationIntent = new Intent(this, TextAnswerActivity.class); 
     notificationIntent.putExtra("taskId", 20); 

     PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 

     Notification notification = new Notification(icon, tickerText, when); 
     notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); 

並接收數據:

Bundle b = getIntent().getExtras(); 
    if (b != null) { 
     int taskId = b.getInt("taskId"); 
     System.out.println("############# taskID: " + taskId); 
    } 
+0

完美工作。謝謝。 – FuegoFingers 2010-09-22 15:32:47