Akzhan
Akzhan

Reputation: 483

How can i make double press back to close my app

I have startActivity and HomeScreen activity. HomeScreen activity appears after startActivity. I want to implement double click back to close the application. I tried this code, but after the app is closed, it immediately reopens again or just returns to startActivity.

@Override
    public void onBackPressed() {
        if (doubleBackToExitPressedOnce) {
            super.onBackPressed();
            return;
        }

        this.doubleBackToExitPressedOnce = true;
        Toast.makeText(this, "Нажмите ещё раз что бы закрыть приложение", Toast.LENGTH_SHORT).show();

        new Handler().postDelayed(new Runnable() {

            @Override
            public void run() {
                doubleBackToExitPressedOnce = false;
            }
        }, 2000);
    }

Upvotes: 1

Views: 49

Answers (1)

sweak
sweak

Reputation: 1990

If this code is in some child activity (not in the main activity), then try replacing:

super.onBackPressed()

with:

finishAffinity()

Since according to the docs:

The default implementation simply finishes the current activity, but you can override this to do whatever you want.

calling super.onBackPressed() will finish current activity - not the whole application. And probably this is the source of Your bugs, but I cannot know for sure, since You haven't provided us with broader context - more code.

So, on the other hand finishAffinity() might be the solution for You. Docs say:

Finish this activity as well as all activities immediately below it in the current task that have the same affinity.

This should finish all the activities.

Upvotes: 1

Related Questions