2016-01-17 2 views
0

У меня сейчас проблемы. Когда я выхожу из приложения и снова открываю его, он показывает мне предыдущую активность. Есть ли способ запустить MainActivity после повторного открытия приложения? Я попытался с помощью, но безрезультатно:Reopen App и не показывать предыдущее задание

SecondActivity.this.finish(); 
Intent intent = new Intent (SecondActivity.this, MainActivity.class); 
startActivity(intent); 

и

android:noHistory="true" 

Пожалуйста, помогите мне спасибо.

+0

, с которой деятельность вы столкнулись с этой проблемой. объясните с помощью потока, чтобы помочь вам лучше. Также «noHistory» - с какой деятельностью. – Tauqir

+0

Я занимаюсь продлением времени. поэтому в основном пользователь должен будет заполнить поля в расширяющейся активности (SecondActivity), после заполнения, он перенаправит пользователя на Mainactivity. Я вышел из приложения, установив диалоговое окно с MainActivity.this.finish(); System.exit (0); , Однако, когда я снова открываю приложение (я не убил приложение), он показывает страницу расширения (SecondActivity). По правде говоря, когда я снова открываю, он должен показать мне мою MainActivity вместо SecondActivity. – redblackwhite

ответ

0

Используйте это:

Intent intent = new Intent (SecondActivity.this, MainActivity.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); 
startActivity(intent); 
finish(); 

Смотрите здесь Clear the entire history stack and start a new activity on Android

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

Хорошая вещь noHistory, что система заботится о finising активности в нужный момент (как вы можете прочитать here, система будет на самом деле вызывается метод отделки() для вас), так что вы можете быть убедитесь, что вы не называть его в плохой момент, и все безопасно (вероятно, это не кажется важным сейчас, но это может быть, например, при работе с потоками)

Также попробуйте прочитать о Empty process

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

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

Читать здесь http://developer.android.com/guide/topics/processes/process-lifecycle.html

Смежные вопросы