2014-10-09 2 views
0

У меня есть уведомление в строке состояния моего приложения. Проблема заключается в том, что при нажатии кнопки «домой» из приложения (нажатие на задний план) нажмите на уведомление в списке доступ из строки состояния, он запускает новую копию действия. Все, что я хочу сделать, это возобновить приложение (например, когда вы отпускаете домашнюю кнопку и нажимаете на значок приложения). Есть ли способ создать намерение сделать это?Android-уведомление нажимает на активность активности

+1

См. Http://stackoverflow.com/questions/3305088/how-to-make-notification-intent-resume-rather-than-making-a-new-intent –

+0

проверьте это: http: // stackoverflow .com/questions/3305088/how-to-make-notification-intent-resume-rather-than-making-a-new-intent/39482464 # 39482464 – TharakaNirmana

ответ

1

Объявите атрибут launchMode="singleInstance" для своей деятельности в AndroidManifest. http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

В отличие от "singleTask" и "SingleInstance" деятельность может только начать задачу. Они всегда находятся в корне стека активности. Кроме того, устройство может удерживать только один экземпляр активности на этапе - только одна такая задача.

+0

Это несколько правильно. Но это создаст проблемы, когда пользователь нажимает кнопку «Домой» и нажимает на значок приложения, чтобы возобновить приложение. – SurenSaluka

0
private void startNotificationOnStatusBar() { 
    try { 
     Intent notificationIntent = new Intent(this, RadioPlayerActivity.class); 
     notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 
     PendingIntent intent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 

     NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) 
      .setSmallIcon(R.drawable.icon) 
      .setContentTitle("Title") 
      .setContentIntent(intent) 
      .setPriority(2) 
      .setContentText("Content text") 
      .setAutoCancel(true); 
     mNotificationManager = (NotificationManager) this.getSystemService(Context.NOTIFICATION_SERVICE); 
     mNotificationManager.notify(0, mBuilder.build()); 
    } catch (Exception e) { 
    } 
} 

Это был мой код без каких-либо модификаций AndroidManifest. Это работает отлично. Когда пользователь нажимает на уведомление, оно возобновляется без выполнения метода onCreate().

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