Как уничтожить деятельность
На самом деле, я новичок в разработке приложений для Android. В моем приложении у меня есть пара действий, и я предоставил своим пользователям меню параметров выхода, чтобы иметь возможность покинуть приложение. Но есть проблема. Когда они нажимают кнопку "Выход", они могут покинуть приложение, но при втором входе в приложение будет запущена страница, которую они покинули в последний раз. Вот мой код:
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch (item.getItemId()) {
case 0 :
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
Toast.makeText(this, "Goodbye Dear", Toast.LENGTH_LONG).show();
break;
4 ответа
Вместо того, чтобы использовать finish()
использовать System.exit(0);
,
У Android Activity есть два метода onPause
а также onDestroy
где вы можете сделать необходимую уборку.
http://developer.android.com/reference/android/app/Activity.html
Вы должны переопределить методы onPause и / или onDestroy внутри своей деятельности и удалить свое представление в этих методах.
Проблема в вашем коде в том, что Intent.FLAG_ACTIVITY_NEW_TASK
не удаляет вашу текущую задачу Узнайте больше об этом здесь: Task и Back Stack | Разработчики Android.
Попробуйте использовать Intent.FLAG_ACTIVITY_CLEAR_TOP
, Из документации видно, что это дает желаемое поведение.
Если установлено, и запускаемое действие уже выполняется в текущей задаче, то вместо запуска нового экземпляра этого действия все остальные действия поверх него будут закрыты, и это намерение будет доставлено (теперь вверх) старая деятельность как новый Намерение.