市面上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程序實現在任意一處完全退出應用的方法。