2015-04-17 2 views
0

У меня есть одно уведомление, созданное в OnStop() MainActivity. Похоже, что:Уведомление нажмите (Android)

@Override 
protected void onStop() { 
    super.onStop(); 
    if (!finish){ 
     Intent intent = new Intent(this, MainActivity.class); 
     intent.setAction(QUIT); 
     PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0); 
     // build notification 
     // the addAction re-use the same intent to keep the example short 
     n = new Notification.Builder(this) 
       .setContentTitle("Still working") 
       .setContentText("Still getting data") 
       .setSmallIcon(R.drawable.ic) 
       .setContentIntent(pIntent) 
       .setAutoCancel(true) 
       .build(); 

     mNotificationManager.notify(0, n); 
    } 
} 

Он должен вновь открыть MainActivity, но открывающийся новый MainActivity, поэтому у меня есть два. Что делать, если вы просто открываете ту же активность, что и в OnStop()?

ответ

1

Вы можете установить флаг намерение включать в себя следующее:

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 

Или просто редактировать манифеста запись для MainActivity включать:

android:launchMode="singleTask" 

Более подробную информацию о намерениях и возможные флаги here и больше информации о режимах запуска here.

+0

В любом случае для возобновления деятельности у меня есть, вместо создания нового? – MCGBra

+0

Учитывая, что это происходит в onStop() Я не думаю, что вы в состоянии это сделать. – Numan1617

+0

Я добавляю «.addAction (R.drawable.abc_ic_clear_mtrl_alpha,« Finalizar », pIntent)» в NotificationBuilder и «if (getIntent()! = Null) finish();» в OnCreate() MainActivity, но приложение не когда я нажимаю уведомление. – MCGBra