2015-02-11 7 views
1

Я использую следующий код, чтобы открыть мое приложение при нажатии на уведомленияПерезапустите приложение, когда нажмите на уведомление

mNotificationManager = (NotificationManager) 
        context.getSystemService(Context.NOTIFICATION_SERVICE);  

      PendingIntent contentIntent = PendingIntent.getActivity(context, 0, 
       i, PendingIntent.FLAG_UPDATE_CURRENT);  

      NotificationCompat.Builder mBuilder = 
       new NotificationCompat.Builder(context) 
       .setSmallIcon(R.drawable.ic_launcher) 
       .setContentTitle(title) 
       .setDefaults(Notification.DEFAULT_SOUND) 
       .setStyle(new NotificationCompat.BigTextStyle() 
         .bigText(msg)) 
       .setContentText(msg); 

     mBuilder.setContentIntent(contentIntent); 
     mNotificationManager.cancel(Constants.PUSH_ID); 
     mNotificationManager.notify(Constants.PUSH_ID, mBuilder.build()); 

Проблема заключается в том, если приложение уже запущено, оно открывает запуск приложения после моей текущей деятельности.

Intent x = new Intent(context, MainActivity.class); 
           i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
           i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); 
           i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

Как я могу закрыть старый и запустить приложение нового.

+0

Вам необходимо использовать соответствующий фильтр намерений в вашем Android Manifest. –

+0

в основном вы хотите продолжить приложение с того места, где вы ушли? –

+0

ну, я хочу, чтобы он перезапустил приложение. Вместо того, чтобы создавать новые действия, проверьте мой отредактированный код для моего намерения. –

ответ

-1

ОК, я нашел очень крутое и простое решение. Я бы просто пройти дополнительное логическое значение для моего намерения, как i.putExtra("shouldRestart", true);

на моем SplashActivity, я проверить

if(getIntent().getBooleanExtra("shouldRestart", false)) 
{ 
    // we need to clear all activities from top 
    finishAffinity(); 
} 
Смежные вопросы