市面上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程序实现在任意一处完全退出应用的方法。
网友评论