Начать новую активность с уведомления в Android - PullRequest
4 голосов
/ 24 апреля 2011

Я хочу запустить мероприятие A из уведомления в строке состояния. Когда мероприятие A уже впереди, я хочу завершить его и заново начать занятие A. Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 24 апреля 2011

Вы имеете в виду перезапустить Занятие А? Хотя наиболее распространенный подход - это просто перезапустить новый Intent с тем же классом, я думаю, что он использует слишком много памяти. Я бы лучше создал метод "init", который должен вызываться из onCreate AND, когда вы хотите перезапустить свою деятельность. Пример:

public void onCreate(Bundle si){
    // Call super and set your layout...
    init();
}

/**
 * This method should be called whenever you want to restart your activity. The
 * biggest advantage is you already have your layout (setContentView() method) 
 */
private void relaunchActivityA(){
    // Clean or save anything you need to clean or save
    init();
}

private void init(){
    // Init your variables, threads, and so on
}

Если вы написали «закончить это и начать новую деятельность А» вместо «Деятельность Б», то сразу после вашей функции startActivity () по действию А - вызов «завершить». Пример:

// This is inside Activity A
Intent i = new Intent(this, ActivityB.class);
startActivity();
finish(); // This will be called right after 'Activity B' finishes
1 голос
/ 24 апреля 2011

Просмотрите документацию по созданию уведомлений в строке состояния. Это определенно охватывает запуск и активность из уведомления с использованием Intent и PendingIntent.

http://developer.android.com/guide/topics/ui/notifiers/notifications.html

Что касается, если действие уже запущено, закончите его и начните заново ... Я не уверен, что это можно сделать легко, в зависимости от того, что вы действительно хотите. Возможно, вы сможете что-то сделать с параметром активности режима запуска в манифесте:

http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

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

Android перезапустить мою деятельность

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...