Перезапуск мероприятий в Android - PullRequest
0 голосов
/ 13 июля 2011

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

(Прежде всего, извините за мой английский)

Моя заявка состоит из двух действий: ВХОД и NEWS .Метод запуска обоих действий - singleTask.

Операция NEWS создает уведомление с помощью onCreate со стандартным кодом уведомления из учебника уведомлений Android !.

int icon = R.drawable.notification_icon;        // icon from resources
CharSequence tickerText = "Hello";              // ticker-text
long when = System.currentTimeMillis();         // notification time
Context context = getApplicationContext();      // application Context
CharSequence contentTitle = "My notification";  // expanded message title
CharSequence contentText = "Hello World!";      // expanded message text

Intent notificationIntent = new Intent(this, MyClass.class);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

Notification notification = new Notification(icon, tickerText, when);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

Когда яСначала откройте приложение:

ВХОД -> onResume () -> NEWS -> onCreate () -> Уведомление

С кодом

Intent newLogAct = new Intent(Login.this, News.class);
TomTuckerActivity.this.startActivity(newLogAct);

Если я нажму Назад * НОВОСТИ * уничтожается и снова:

ВХОД --> onResume () -> NEWS -> onCreate () -> Уведомление

(мне не нравится этот цикл, причина его использования объясняется в конце)

Если я нажму Дом , я вернусь в главное меню и начну то, что я не понимаю:

Если я использую уведомление, чтобы перезапустить приложение тамэто не проблема, и окно NEWS открывается снова без вызова onCreate и без отправки уведомления.

Если я использую значок приложения при вызовеing NEWS опция singleTask кажется бесполезной, потому что снова вызывается onCreate () и снова отправляется уведомление.

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

Может ли флаг в newLogAct решить проблему?

У вас есть возможность запуска единой задачи в обоих действиях?


О программепроблема с циклом кнопки Back :

Чтобы избежать цикла, я думал об использовании onCreate () вместо onResume ().Однако, когда я перезапускаю приложение со значком приложения LOGIN загружено, но onCreate не вызывается, поэтому NEWS не загружается.

Есть ли другой способ решитьчто?

Может быть с методом onNewIntent ()?

1 Ответ

0 голосов
/ 13 июля 2011

Ваша проблема (или, по крайней мере, ее часть), по-видимому, заключается в следующем: Как заставить уведомление вернуться, когда вы оставили приложение.

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

Если вы хотите вернуться к приложению, в котором вы его оставили (я делаю это), вы можете воспользоваться следующей уловкой (я не знаю, является ли это хорошей практикой, но она работает и не кажется это хак): создайте действие с именем Autodestruct, которое вызывает finish() в его методе onCreate(), и сделайте уведомление, чтобы запустить это действие. Это восстановит задний стек с фиктивной деятельностью сверху и немедленно удалит фиктивную активность.

...