2014-09-15 4 views
0

У меня есть приложение, я отправляющее уведомление с этим кодомВыполнить метод из уведомления

private void notBuild() { 
    int mId=1; 
    NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this) 
      .setContentTitle("Message") 
      .setAutoCancel(true) 
      .setSmallIcon(R.drawable.twitter) 
      .setContentText("user01 sent a message") 
      .setNumber(15); 
    // Creates an explicit intent for an Activity in your app 
    Intent resultIntent = new Intent(this, MainActivity.class); 

    // The stack builder object will contain an artificial back stack for the 
    // started Activity. 
    // This ensures that navigating backward from the Activity leads out of 
    // your application to the Home screen. 
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 
    // Adds the back stack for the Intent (but not the Intent itself) 
    stackBuilder.addParentStack(MainActivity.class); 
    // Adds the Intent that starts the Activity to the top of the stack 
    stackBuilder.addNextIntent(resultIntent); 
    PendingIntent resultPendingIntent = 
      stackBuilder.getPendingIntent(
       0, 
       PendingIntent.FLAG_UPDATE_CURRENT 
      ); 
    mBuilder.setContentIntent(resultPendingIntent); 
    NotificationManager mNotificationManager = 
     (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
    // mId allows you to update the notification later on. 
    mNotificationManager.notify(mId, mBuilder.build()); 
} 

Это начиная mainactivity и это okay.But я хочу запустить метод в основной деятельности.

Пример: Вы увидите в setContentTextuser01 послал сообщение, когда пользователь нажмет уведомление я хочу запустить startChat(user01) метод в основном activity.How я могу это сделать?

+0

Почему бы не передать некоторые данные в деятельности с resultIntent.putExtra(), а затем проверьте статистов в вызываемом деятельности через getIntent(), затем перейдите на основе данных вызывающего Intent? – Guardanis

+0

Можете ли вы привести пример? –

+0

Ответ kevskree ниже соответствует строкам того, что я предлагал – Guardanis

ответ

0

Вы можете поместить данные в переменную resultIntent.

resultIntent.putExtra('key', 'useridhere'); 

Тогда в вашей деятельности (onCreate или OnResume) вы можете вызвать

String userId = getIntent().getStringExtra('key', null); 
if(userId != null) 
{ 
    //StartChat(....); 
} 
+0

Можно ли положить jsonobject? –

+0

См. Http://stackoverflow.com/a/5300417/1296369 – kevskree

Смежные вопросы