【代碼】Android 退出 App 方法的完美解決

大家都知道 Android 的 Activity 是存着歷史棧的,比如從 A -> B -> C,C 完成 finish 後回到 B,把所有的Activity 都 finish了,程序就自然退出了。 當然在 finish 的同時也需要是否自己程序的其他資源。所以需要想個辦法把 Activity 給存起來。然後在程序退出的地方調用它們的 finish()方法。   使用全局變量。對了,第一個想到的就是繼承 Application,代碼入下:
  
  public class AgentApplication extends Application {  
      
    private List<Activity> activities = new ArrayList<Activity>();  
      
        public void addActivity(Activity activity) {  
            activities.add(activity);  
        }  
      
        @Override  
        public void onTerminate() {  
            super.onTerminate();  
              
            for (Activity activity : activities) {  
                activity.finish();  
            }  
              
            onDestroy();  
              
            System.exit(0);  
        }  
    }  

然後在 Activity  onCreate 的時候來調用  addActivity (),有人可能想到這個Application需要在所有的 Activity  onCreate的時候都使用,需要做一個單例實例。其實根本不需要。在 Activity 中使用  this.getApplication() 就可以了。   最後在你需要推出程序的地方調用 application.onTerminate() 就可以了。記住:super.onTerminate() 必須調用,代碼中的 onDestroy()是我自己的釋放其他資源的方法,不是系統的。   運行以上代碼後,在LogCat 中會出現一行提示: Process  包名 (pid  xxxxx)  has died.  證明你的程序退出了。


本文出自 “清源教育” 博客,轉載請註明此處,謝謝!歡迎登錄清源教育官網,查看更多視頻教程。

發佈了31 篇原創文章 · 獲贊 2 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章