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 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程序实现在任意一处完全退出应用的方法。

你可能感兴趣的:(Android程序如何在任意处完全退出应用)