2011-09-02 174 views
3

我有一個android應用程序,我在遠程服務器的第一個屏幕中檢查用戶憑證。我有10秒的超時時間。超時應用程序發送用戶到錯誤頁面。我有一個退出按鈕。退出Android應用程序

我已經嘗試了所有書面方式的邏輯退出包括

android.os.Process.killProcess(android.os.Process.myPid()); 
在退出按鈕的點擊

應用。但我無法從應用程序中分出。

請幫我找到一種方法來退出應用程序。

+0

剛剛完成()當前活動?我不認爲在android中「退出」應用程序是正確的。 – lstipakov

+0

不*使用'android.os.Process.killProcess'。根據Pim的答案使用'finish()'。 – Dave

回答

1
CLASSNAME.this.finish(); 

其中,CLASSNAME是活動活動類的名稱。在CLASSNAME類中使用它。

1

完成()當u用戶發送錯誤退出按完成()的活動也頁和活動....

+0

我曾想過你。但實際上,我正在使用一個util類用於http連接,在那裏我使用上下文對象將用戶發送到錯誤頁面。有什麼方法可以完成我稱之爲util方法的活動。我嘗試將活動對象傳遞給util類,並在調用錯誤頁面時完成相同的操作。但它沒有點擊。任何想法 ? –

+0

然後你應該把finish()放在活動的onResume中,當你關閉錯誤頁面時,活動的onResume將被調用,並且你可以調用finish()..你需要爲此維護一個變量... –

1
/ add this line for Removing Force Close 
@Override 
    protected void onDestroy() { 
// closing Entire Application 
     android.os.Process.killProcess(android.os.Process.myPid()); 
     super.onDestroy(); 
    } 
} 
1

如果當前的活動是不是在棧中只有一個,只是finish()不會退出該應用程序。您應該遞歸地將finish()堆棧中的所有活動退出應用程序。

6

爲什麼用戶想要退出應用程序只是因爲用戶輸入了錯誤的憑證/沒有正確的憑據?

如果我是你,錯誤視圖/活動/「頁面」將提供一個建設性的解決任何問題帶給用戶在那裏。簡單地說「錯誤」然後退出應用程序對用戶沒有任何好處。

至於你的問題,谷歌不鼓勵實施退出按鈕。當Android認爲合適時,Android將「退出」您的應用,並且在發生這種情況時由開發人員實施正確的行爲。

http://developer.android.com/guide/topics/fundamentals/activities.html

Is quitting an application frowned upon?

2

不要試圖退出應用程序,因爲這是不如何機器人被設計爲應用程序的工作。

相反,如果你想鎖定用戶(大概是爲了強制重新認證),就會銷燬維持會話的任何信息 - 也就是拒絕做任何事情,直到他們重新認證。通過這種方式,您可以使用諸如憑據數據或android在您的控制下離開的狀態變量來控制應用程序的行爲,而不是某些Android(程序死亡),Android從開發人員的控制中可以獨立地將其刪除。

2

呼叫主要活動完成。像MainActivity.this.finish()

+0

我會通過一個對話框來解釋你爲什麼要退出按鈕onclick回調,所以用戶知道發生了什麼。 –