美文网首页面试程序员
Android程序如何在任意处完全退出应用

Android程序如何在任意处完全退出应用

作者: xuanyonghao | 来源:发表于2017-03-06 17:46 被阅读357次

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

    相关文章

      网友评论

      本文标题:Android程序如何在任意处完全退出应用

      本文链接:https://www.haomeiwen.com/subject/koyugttx.html