2015-04-03 88 views
1

我的應用程序包含12個活動。我可以通過一次點擊退出整個應用程序嗎? finish()只完成一個單獨的活動並啓動以前的活動。請幫我解決這個問題從Android應用程序退出

回答

-1
 AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
       this); 
     alertDialogBuilder.setTitle("Exit App?"); 
     alertDialogBuilder 
       .setMessage("Click yes to exit!") 
       .setCancelable(false) 
       .setPositiveButton("No", 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, 
            int id) { 
           dialog.cancel(); 
          } 
         }) 

       .setNegativeButton("Yes", 
         new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, 
            int id) { 
           moveTaskToBack(true); 
           android.os.Process 
             .killProcess(android.os.Process 
               .myPid()); 
           System.exit(0); 

          } 
         }); 
+0

對不起@ Demo Sharma,它不起作用 – Anupama 2015-04-03 09:17:29

+0

不要使用System,exit()。許多原因不是因爲它搞砸了Android應用內存管理。 – Simon 2015-04-03 09:45:21

0

當從你想要關閉所有活動的活動開始時,爲意圖添加一個標誌。

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); 

這會讓你當前活動的頂部,因此,當你完成這個任務就會完成

0

創建的所有活動的靜態實例

public class Activity1 extends FragmentActivity { 

    private static Activity1 sActivity; 

    public static Activity1 getsActivity() { 
     return sActivity; 
    } 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     sActivity = this; 

} 

    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     sActivity = null 
    } 
} 
} 

現在創建一個退出方法在你的工具類喜歡,並開始從更高的順序殺死活動,並從您的應用程序內的任何地方打電話給它

public static void exitApp(){ 
    if(Acitivity10.getsActivity() != null){ 
    Activity10.getsActivity.finish(); 
} 
    if(Acitivity9.getsActivity() != null){ 
    Activity9.getsActivity.finish();  
} 
- 
- 
if(Acitvity1.getsActivity()!= null){ 
    Activty1.getsActivity().finish(); 
} 
} 
+0

想象一下在Play商店中搜索。每次你輸入一個新的搜索它都會發起一個新的搜索活動。您需要能夠處理同一種類的多個活動。 – 2015-04-03 10:15:01

+0

嗯,所以這種方式我們不能處理同一類型的多個活動, cz它只會殺死當前活動,其餘活動將保持不變 – Abhishek 2015-04-03 10:26:19

+0

我們可以使用WeakReferences的集合。也許一個帶有WeakReferences的回調函數,它會從列表中刪除空的引用,所以它不會無法控制地增長。 – 2015-04-03 10:31:19