2013-05-30 70 views
2

你好,我是新來的android.I我正在實施一些應用程序,它有一些活動。 假設如果我第一次啓動應用程序,它會進入A然後在C,D,E之後進入B(這裏A,B,C,D,E是活動)。如果我按在E的後退按鈕,那麼它就是這樣的D - > C - > B - > A。需要代碼退出從Android應用程序

現在我要實現代碼退出/從應用程序退出時,我在D. 我寫了下面的代碼,但是這個代碼正在關閉當前的活動,並打算後退activity.means去C.

finish();

然後我試着用下面的代碼,它工作正常,併成功地關閉當前應用程序,並打算設備的主screen.But如果我想再次打開該應用程序,然後它開始形式d,而不是A.

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

here

複製請幫我解決我的問題。

+0

看看: http://stackoverflow.com/questions/6330200/how-to-quit-android-appli陽離子編程 和 http://stackoverflow.com/questions/2092951/how-to-close-android-application –

+0

你需要的是一個操作欄。點擊應用程序圖標導航到應用程序主屏幕。點擊返回按鈕完成活動。 http://developer.android.com/guide/topics/ui/actionbar.html – Raghunandan

+0

@Raghunandan ::對不起,我沒有得到你所說的。請你詳細說明一下。 – KCRaju

回答

0

試試這個:

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

請勿使用system.exit(0).http:/ /stackoverflow.com/questions/2033914/quitting-an-application-is-that-frowned-upon – Raghunandan

+0

@tsuensiu :: no use – KCRaju

+0

我的確切需求是我需要關閉所有活動並轉到設備主屏幕或設備應用程序屏幕時我點擊我的應用程序中的「退出」按鈕,當我重新啓動應用程序時,它應該從MAIN活動開始。 – KCRaju

3

使用這些標誌來午餐的活動,並清除活動堆棧

Intent intent = new Intent(this, YourActivityD.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 

注意FLAG_ACTIVITY_CLEAR_TASK只能從API 11 見:http://developer.android.com/guide/components/tasks-and-back-stack.html

+0

如果用戶想要導航回到之前的活動(從活動D到E),會發生什麼? – Raghunandan

+0

他的問題不是關於後退按鈕,而是關於活動堆棧。如果他的應用程序無意從活動D返回到活動C(例如活動C顯示登錄表單),則清除活動堆棧在此處是有意義的。 – lukas

+0

如果用戶無法導航到之前的活動,清除後退堆棧將會失敗。我仍然會建議OP使用操作欄。 – Raghunandan