Запретить восстановление стека активности?

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

Возможно ли это?

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

EDIT: clearTaskOnLaunch, что я хочу? Я добавил его к своей активности по умолчанию, но я не вижу никакого эффекта. Но это убьет мои действия, даже если я просто скрою приложение, не так ли? Я бы предпочел только очистить стек, если весь процесс перезагружается.

EDIT 2: Нет, это не то, что я хочу - инженер Android дал полный ответ на некоторые вопросы о том, как использовать ClearTaskOnLaunch: http://groups.google.com/group/android-developers/browse_thread/thread/da024bcaf4e1960f/ab1e2b35c360cb65?pli=1

Ответ 1

Единственное решение, которое я смог найти, - проверить глобальную статическую переменную в каждом экземпляре onCreate() и завершить, если эта переменная была reset равным null, указав, что задача была перезапущена. Я закрываю все действия до моей активности и начинаю.

Вскоре я надеюсь, что мое приложение будет находиться в точке, где оно может сохранить необходимые значения в onPause(), но пока это единственный надежный способ работы с потерянной инициализацией...

Ответ 2

Я использую этот фрагмент кода:

public class NoRestoreActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // Shoul be always NULL when created the first time, just in case...
        if (savedInstanceState != null && savedInstanceState.getInt("SavedInstance") > 0) {
            // ----- Your prefferred way to kill an application ----
            try {                
                this.finishActivity(0);               
            } catch (Exception ee) {
            }
            try {
                android.os.Process.killProcess(android.os.Process.myPid());
                System.exit(10);
            } catch (Exception eeee) {
            }
            return;
        }
        super.onCreate(savedInstanceState);
    }

    @Override
    protected void onSaveInstanceState (Bundle outState){
        super.onSaveInstanceState(outState);
        outState.putInt("SavedInstance",1);
    }
}

Ответ 3

Это что-то нужно учитывать при работе с собственными инструментами Android, или это проблема, вызванная убийцами третьей стороны? По крайней мере, на эмуляторе, использующем "принудительный останов", кажется, что reset стек активности - это то, что я ожидал всегда, когда приложение умирает.