Android程序如何在任意處完全退出應用

市面上99.9的Android程序都是免費安裝的,不像ios需要收取昂貴的費用,因此,很多Android開發者都會在自己的應用加入啓動界面廣告,以獲取微小的辛苦費。

廣告界面(Advertise)是一個獨立的Activity並且是主界面,我們會讓程序在這個界面停留幾秒鐘,讓用戶觀看我們的廣告,然後
startActivity(new Intent(Advertise.this,Main.class))
啓動主內容界面,但是,這樣就不可避免的出現一個問題,當用戶在Main主內容界面按下back鍵的時候,程序就返回Advertise廣告界面,這樣的用戶體驗很可能會讓用戶討厭繼而刪除應用。那麼我們怎麼解決這個問題?這時候我們就需要一個Activity管理器管理所有的Activity,每啓動一個Activity我們都把它添加到管理器,對應的每結束一個Activity我們就把它從管理器刪除,那麼如果在Main主內容界面點擊back退出應用的時候,只要遍歷Activity管理器,把每一個Activity都finish(),這樣我們的應用就不會再返回廣告主界面(Advertise)了,而且完全退出應用。下面是Activity管理器代碼。

public static class ActivityCollector{ 
      private List<Activity> activities = new ArrayList();//這裏我們創建一個List集合保存所有啓動的Activity
      //添加一個Activity到集合
      public static void add(Activity activity){ 
            activities.add(activity);
       } //從集合中移除某個Activity
      public static void remove(Activity activity){                 
            activities.remove(activity); 
      }//遍歷集合所有Activity並且結束該Activity
      public static void finishAll(){ 
            for(Activity activity:activities){ 
                  activity.finash(); 
            }
       }
 }

這樣只要我們在每一個啓動的Activity回調的onCreate()方法調用ActivityCollector.add(this)把每一個Activity都加入管理器管理,對應的在每一個啓動的Activity回調的onDestory()方法調用ActivityCollector.remove(this)把銷燬的Activity從管理器去除。如果我們需要在程序某個地方退出整個應用,只需要執行以下代碼即可。
ActivityCollector.finishAll();
以上就是Android程序實現在任意一處完全退出應用的方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章