zoukankan      html  css  js  c++  java
  • Android程序的退出终于完美解决,兼容所有SDK

    上网学了好多方法,关于Android的Activity如何退出。好多方法都不行啦,试了各种方法,下面这种方法就是我最喜欢的,简单又容易懂。


    使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器(具体实现自己处理,使用LinkedList等)专门负责存储新开启的每一个Activity,并且容易理解、易于操作,非常不错!

    MyApplication类(储存每一个Activity,并实现关闭所有Activity的操作

    Java代码 复制代码 收藏代码
    1. public class MyApplication extends Application {   
    2.   
    3.   
    4.  private List<Activity> activityList = new LinkedList<Activity>();    
    5.  private static MyApplication instance;   
    6.     
    7.             private MyApplication()   
    8.             {   
    9.             }   
    10.              //单例模式中获取唯一的MyApplication实例    
    11.              public static MyApplication getInstance()   
    12.              {   
    13.                             if(null == instance)   
    14.                           {   
    15.                              instance = new MyApplication();   
    16.                           }   
    17.                  return instance;                
    18.   
    19.              }   
    20.              //添加Activity到容器中   
    21.              public void addActivity(Activity activity)   
    22.              {   
    23.                             activityList.add(activity);   
    24.              }   
    25.              //遍历所有Activity并finish   
    26.   
    27.              public void exit()   
    28.              {   
    29.   
    30.                           for(Activity activity:activityList)   
    31.                          {   
    32.                            activity.finish();   
    33.                          }   
    34.   
    35.                            System.exit(0);   
    36.   
    37.             }   
    38. }  
    public class MyApplication extends Application {
    
    
     private List<Activity> activityList = new LinkedList<Activity>(); 
     private static MyApplication instance;
     
                private MyApplication()
                {
                }
                 //单例模式中获取唯一的MyApplication实例 
                 public static MyApplication getInstance()
                 {
                                if(null == instance)
                              {
                                 instance = new MyApplication();
                              }
                     return instance;             
    
                 }
                 //添加Activity到容器中
                 public void addActivity(Activity activity)
                 {
                                activityList.add(activity);
                 }
                 //遍历所有Activity并finish
    
                 public void exit()
                 {
    
                              for(Activity activity:activityList)
                             {
                               activity.finish();
                             }
    
                               System.exit(0);
    
                }
    }

     在每一个Activity中的onCreate方法里添加该Activity到MyApplication对象实例容器中

     

    Java代码 复制代码 收藏代码
    1. MyApplication.getInstance().addActivity(this);  
     MyApplication.getInstance().addActivity(this);

     在需要结束所有Activity的时候调用exit方法

     

    Java代码 复制代码 收藏代码
    1. MyApplication.getInstance().exit(); 
  • 相关阅读:
    MySQL Online DDL导致全局锁表案例分析
    .NET Core教程--给API加一个服务端缓存啦
    任务队列和异步接口的正确打开方式(.NET Core版本)
    .NET Core中使用RabbitMQ正确方式
    .NET Core单元测试之搞死开发的覆盖率统计(coverlet + ReportGenerator )
    没有执行过rm -rf /*的开发不是好运维
    dotnet core在Task中使用依赖注入的Service/EFContext
    可能是全网首个支持阿里云Elasticsearch Xapck鉴权的Skywalking
    dpdk中QSBR具体实现
    C语言二级指针底层实现
  • 原文地址:https://www.cnblogs.com/zhwl/p/2790186.html
Copyright © 2011-2022 走看看