Как уничтожить деятельность

На самом деле, я новичок в разработке приложений для 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, Из документации видно, что это дает желаемое поведение.

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

Другие вопросы по тегам