Android Запустите приложение из последней активности - PullRequest
7 голосов
/ 23 января 2010

У меня есть приложение с несколькими активностями. У My A Activity есть параметры фильтра Manifest Intent: action.MAIN и категория. после его загрузки я вызываю активность B и finish () A, поскольку я больше им не пользуюсь.

После того, как я запустил свое приложение, перейдите от Действия A к B и нажмите Home кнопку, когда я перезапустить его из меню приложений или из Приложение Market для ex. (Не долгим нажатием на кнопку Home), оно запускается из действия A и не сохраняйте его последнее действие B.

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

Кто-нибудь знает, как реализовать это, чтобы мое приложение могло перезапустить от его последнего действия B?

Спасибо ayanir

Ответы [ 3 ]

5 голосов
/ 15 февраля 2011

Хотя я знаю, что это старый вопрос, я боролся с этой самой проблемой и не мог найти ответ на SO. Итак, вот мой (очень новичок) ответ:

Нет, я не думаю, что это возможно сделать путаницей с манифестом - вы можете запускать только одно фиксированное действие для приложения с домашнего экрана. Тем не менее, вы можете запускать любое действие, которое хотите, с этой начальной точки, и Android может делать это достаточно быстро, чтобы вы никогда не увидели первое.

Хотя это очень похоже на хак, я реализовал эту маршрутизацию в методе onResume () начального действия и использовал sharedPreferences , чтобы отслеживать, какое действие запустить:

    final Class<? extends Activity> activityClass;
    SharedPreferences prefs = getSharedPreferences("sharedPrefs", MODE_PRIVATE);
    int activityID = prefs.getInt("whichActivity", -1);
    if (activityID  == Constants.ACTIVITY_ID_MAINSCREEN) {
        activityClass = MainScreen.class;
    } else {
        activityClass = null; return;
    }
    Intent newActivity = new Intent(this, activityClass);
    this.startActivity(newActivity);
1 голос
/ 23 января 2010

В последнее время возник ряд очень похожих вопросов. Рекомендуется сначала выполнить поиск по сайту, чтобы избежать повторяющихся вопросов.

Например, вопрос, связанный ниже, говорит о том, что это происходило из-за того, что разработчик запускал свое приложение с использованием отладчика Eclipse. У других людей возникла эта проблема, потому что они запускали приложение непосредственно из Eclipse, а не запускали его вручную, вручную нажимая значок запуска.

Android: сохранение стека активности задачи после перезапуска из HOME

0 голосов
/ 27 января 2010

, поэтому есть несколько вещей, которые следует учитывать при разработке приложений для Android. И одна из самых важных вещей - это Lifecyle приложения, если вы еще этого не сделали, я бы предложил это видео . Что происходит, так это то, что приложение может быть убито и сброшено в любой момент времени, и вам необходимо сохранить состояние приложения, чтобы вы могли восстановить его в любое время. Если вы откроете свое приложение из панели запуска, вы всегда перейдете в действие, которое запускает приложение, если вы хотите перейти к следующему действию, вам необходимо сохранить эту информацию, а затем перейти к действию в своем коде.
Также посмотрите на эту документацию о SavingPersistentState

...