2

我有一個登錄活動。登錄後,將啓動Main活動,該活動使用片段進行用戶導航。我想在我的主要活動的導航抽屜中的一個按鈕,將完全關閉應用程序Android完全強制退出應用程序

現在,我已經看到了許多線程,並試圖實現他們的解決方案。例如:

我在我的主要活動試圖finishAffinity(),應關閉當前的活動以及所有父活動

我已儘快造就了我的主要活動在登錄活動使用finish()嘗試,然後再次撥打finish()當用戶點擊按鈕

這個問題的最高票數答案:Close application and remove from recent apps/,似乎也不工作。首先,android:autoRemoveFromRecents="true"需要API> 21,但即使我的最低SDK版本設置爲21,該應用仍停留在列表

最後,我已經當用戶點擊退出按鈕使用意圖和導航回試到登錄活動,並設置退出額外的標誌,然後完成登錄活動(即exit android application programmatically

這些都沒有工作。他們都將關閉主要活動,甚至可能關閉登錄活動。但是,如果用戶點擊應用程序列表/當前應用程序/打開應用程序鍵(大多數手機上的方形軟鍵),該應用程序仍然可見。當該應用程序在該列表中單擊時,它會將我帶回到登錄活動屏幕(我不確定這是從新開始的應用程序,還是僅將我帶到之前沒有關閉的登錄屏幕)

絕望的我都甚至試圖System.exit(0),我知道是壞的,但即使不從應用程序列表中刪除應用程序

那麼,如何編程完全退出應用程序,並刪除所有的痕跡它是開放的?

編輯:我太匆忙聲稱下面的答案之一沒有工作(見上面的斜體)。答案不正確刪除

+1

你不應該那樣做。Android會緩存應用程序進程,以便它們儘可能長時間保留在內存中,並在用戶再次使用應用程序時重用。應用程序開發人員應該期待這種行爲 –

+1

[關閉應用程序並從最近的應用程序中刪除/]可能的重複(http://stackoverflow.com/questions/22166282/close-application-and-remove-from-recent-apps)。另請參閱[以編程方式從最近的應用中刪除應用](https://stackoverflow.com/questions/13385289/remove-app-from-recent-apps-programmatically)。 – corsair992

回答

1

我覺得你在找this is the solution

您可能會考慮讓另一個名爲ExitActivity的活動在您嘗試退出應用程序時調用。這裏的技巧是,ExitActivity將在manifest文件中將android:autoRemoveFromRecents設置爲true,以便您的實例將自動從最近值中清除。

0

根據我的研究應用:

沒有辦法強迫在android系統相當的應用程序。你只能暫停一個活動。退出應用程序的決定權完全在於它在檢查應用程序的內存和資源利用率方面所做的android框架。我現在找不到官方的鏈接,但我早些時候讀過它。

0

由OS管理它。調出主屏幕。

Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);