2017-08-15 69 views
1

我曾經在網絡上漫步了一個小時,我無法找到一個完全關閉我的應用程序並關閉所有活動,然後返回到主屏幕的代碼。即使「退出」按鈕對於Android應用程序不可或缺我的工作。我 給代碼沒有work.So請不要認爲不可能找到一個完美的代碼。如何退出應用程序,關閉所有活動並顯示主屏幕?

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

這個代碼將關閉應用程序,並顯示homescreen.But它沒」 t關閉正在運行的應用程序。它只是最小化的應用程序

Activity.finish(); 
System.exit(0);  

    protected void quit(){ 
    Process.killProcess(Process.myPid()); 
} 

此代碼簡單地重新啓動當前活動

+0

看看鏈接的「重複」問題中的其他答案。有很多方法可以做你想做的事,儘管它通常不是在Android中完成的。最簡單的方法是使用「Intent.FLAG_ACTIVITY_CLEAR_TOP」啓動你的「根活動」,並傳遞一個「extra」,告訴根你想退出的活動。這將清除活動堆棧中的所有活動,並且您的根活動只需調用'finish()'退出。 –

回答

0

這可能會實現:

android.os.Process.killProcess(android.os.Process.myPid()); 
System.exit(0); 

或致電您的活動,而不是System.exit()moveTaskToBack(true)。這會隱藏你的應用程序,直到用戶想再次使用它。請記住,只要您適當地響應生命週期事件,您和用戶都不需要關心應用程序是否仍在運行。

所以,如果你想隱藏你的應用程序調用moveTaskToBack(),並讓Android決定何時殺死它。

+0

讓我試試。感謝您的回覆 –

+0

它只是重新啓動當前活動 –

+0

我想殺了我的應用程序按鈕點擊 –

0

Personnaly,我喜歡在我的MainActivity上使用finishAndRemoveTask();,它將應用程序從最近的應用程序中刪除並完全關閉它。或者,如果您希望您的應用位於最近的應用屏幕上,則可以簡單地使用finishTask();

+0

請解釋如何使用finishAndRemoveTask();和finishTask(); –

+0

這個「finishAndRemoveTask();」重新開始活動 –

相關問題