2012-07-08 112 views
0

我有一個登錄頁面,然後是一個主頁,然後我在主頁上有一個退出按鈕。當你按下退出時,我需要關閉應用程序。 如果我在主頁的退出onClick()上使用finish(),它會讓我回到登錄頁面。Android查殺應用程序

所以我用

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

現在,這並不像一個出口,但是當你再次啓動應用程序,它通過傳遞登錄屏幕,直接進入主頁(如應用程序從未被關閉)。 這裏最好的解決方案是什麼?

+0

你不應該對自己的退出應用程序......這是Android系統的工作。 – 2012-07-08 19:14:59

+0

@AlexLockwood然而,我同意這只是問題的一部分。這裏真正的問題是,在主頁上調用finish()會返回到登錄頁面。 VenomVendor正確回答了這個問題的一部分,但有人投票否決了他的回答:-( – 2012-07-08 19:17:15

回答

1

之前來到首頁從登錄頁面使用finish();

Intent i = new Intent(Login.this, Home.class); 
StartActivity(i); 
finish(); 
+0

好吧,現在還有另外一個問題,我有1,2,3,4。 一旦這個人完成填寫第1,2頁的表格,3,4,我將他重定向到主屏幕 我無法在所有頁面上顯示完成,如果用戶在頁面3上並想返回到頁面2,則先前在頁面2上填寫的所有數據應該是 – donsalari 2012-07-08 19:16:03

+0

此答案解決了從主頁返回到登錄屏幕的問題,它可能無法解決您的任何其他問題 – 2012-07-08 19:18:26

+1

重定向回到主頁屏幕從第1,2,3,4頁,您可以使用此:'Intent intent = new Intent(this,Home.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);'你也可能需要使用Intent.FLAG_ACTIVITY_SINGLE_TOP。 EXP奠定了選擇。 – 2012-07-08 19:23:54

3

什麼是最好的解決方案?

最好的解決方案是刪除退出按鈕及其相關功能。

首先,它不是必需的,因爲您提供的退出按鈕已經通過設備上的HOME按鈕提供。

二,你have been told,重複,by Googlers,沒有這樣的按鈕。

參見:Is quitting an application frowned upon?

+0

我完全同意,但只是閱讀我對上述評論的迴應。 所以每次填寫表格時,我想退出該應用程序,以便其他用戶可以使用不同的憑據登錄。 – donsalari 2012-07-08 19:21:44

+0

您不需要「退出應用程序」。你只需要完成你所有的活動。就這樣。 – 2012-07-08 19:24:37

+0

當然,整個「你應該退出一個應用程序?」在我們討論可以被多個用戶使用的應用程序時,辯論可能需要重新開放。當你考慮認證和安全問題時,整個事情就會崩潰。當然,整個辯論始於Android僅用於智能手機,沒人想到整個多用戶問題。 – 2012-07-08 19:26:57

相關問題