TabGroupActivity startChildActivity - приостановить текущую активность - PullRequest
0 голосов
/ 27 сентября 2011

Расширение TabGroupActivity, когда я запускаю новую дочернюю активность:

public void startChildActivity(String Id, Intent intent) {
    Window window = getLocalActivityManager().startActivity(Id,
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
    if (window != null) {
        activityIdList.add(Id);
        setContentView(window.getDecorView());
    }
}

Как перевести текущую активность в состояние паузы?

Потому что после того, как я таким образом запускаю дочернее действие, когда я перезапускаю его, запускается метод on create. Как я могу избежать этого?

Найдено одно решение - использовать другой флаг:

Intent.FLAG_ACTIVITY_REORDER_TO_FRONT

но не уверен, что это лучшее решение

P.P.S Другое решение - добавить логическое намерение в метод startChildActivity:

public void startChildActivity(String Id, Intent intent) {
    intent.addExtra("resume", true);
    Window window = getLocalActivityManager().startActivity(Id,
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
    if (window != null) {
        activityIdList.add(Id);
        setContentView(window.getDecorView());
    }
}

, а затем извлечь его из дочернего действия и проверить, перезапущено ли действие или нет

1 Ответ

0 голосов
/ 27 сентября 2011

Попробуйте поместить это в тег активности в файле манифеста

android:launchMode="singleTask"

Это должно выглядеть примерно так

<activity android:name=".dashboard.DashboardActivity" android:screenOrientation="portrait"
        android:launchMode="singleTask"/>
...