2015-05-20 4 views
1

Я создаю уведомление, и когда оно будет получено, приложение будет запущено. Мой вопрос: как я могу прекратить это?Объявление Android продолжает запускать приложение

final private static void generateNotification(Context context, String message){ 
    Intent notificationIntent = new Intent(context, MainActivity.class); 
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
    PendingIntent intent = PendingIntent.getActivity(context, 0, notificationIntent, 0); 


    NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(context) 
     .setSmallIcon(R.drawable.ic_launcher) 
     .setContentTitle(context.getString(R.string.app_name)) 
     .setContentIntent(intent) 
     .setContentText(message) 
     .setAutoCancel(true) 
     .setDefaults(Notification.DEFAULT_SOUND | Notification.DEFAULT_VIBRATE | Notification.DEFAULT_LIGHTS); 
    NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
    mNotificationManager.notify(0, mBuilder.build()); 
} 

Уведомление называется в GCMIntentService:

@Override 
protected void onMessage(Context context, Intent intent) { 
    Log.i(TAG, "Received message"); 
    String response = intent.getExtras().getString("response"); 

    switch(response){ 
     case "logout": 
      String message = "You logged into another device!"; 
      //displayMessage(context, message); 
      // notifies user 
      generateNotification(context, message); 
      Intent i = new Intent(context, MainActivity.class); 
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      startActivity(i); 
     break; 
     default: 

     break; 
    } 



} 
+0

«Когда приложение будет запущено», вы уверены? не при нажатии? – weston

+0

Да, даже если я не нахожу уведомление о запуске приложения – jampez77

+0

Сообщение, откуда вызывается этот код, так как я не думаю, что проблема здесь. – weston

ответ

1

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

+0

Отлично! Это работает, однако теперь, как я могу запустить это при нажатии на уведомление или если приложение открыто? – jampez77

+0

Вы пытались постучать по нему? Как кажется, ваш код, хотя использование 'setContentIntent' – weston

+0

Как для приложения открыто: http://stackoverflow.com/questions/8489993/check-android-application-is-in-foreground- or-not – weston

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