Деятельность не используется повторно - PullRequest
2 голосов
/ 22 марта 2011

У меня странная проблема с моей заявкой.

Я запускаю приложение, и активность показывает, что все в порядке.

Затем я нажимаю клавишу возврата, чтобы действие перешло в фоновый режим. Я вижу, как вызывается метод onPause().

Служба приложения создает уведомление, которое отображается в строке состояния.

Затем я нажимаю на уведомление, и отображается активность, и я вижу, что вызывается метод onResume().

Затем я нажимаю клавишу возврата, и действие переходит в фоновый режим. Я вижу, как вызывается метод onPause().

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

Если я снова нажму клавишу «Домой», новое действие перейдет в фоновый режим.

Запуск приложения нажатием на значок приложения. Я вижу, что создан еще один новый экземпляр действия.

Нажатие кнопки «Назад» в точке уничтожает каждое возвращаемое действие.

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

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 22 марта 2011

Просто используйте те же фильтры намерений, которые использует Android при запуске приложения:

        final Intent notificationIntent = new Intent(context, MessageListActivity.class);
        notificationIntent.setAction(Intent.ACTION_MAIN);
        notificationIntent.addCategory(Intent.CATEGORY_LAUNCHER);

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

0 голосов
/ 22 марта 2011

Вы должны посмотреть на различные режимы запуска для действий Android. это должно помочь. Режимы запуска можно установить в файле androidmanifest.xml. Я думаю, что ваше решение было бы использовать режим запуска «SingleTop».

...