• Android之退出整个应用方法


    两种

    一、广播方式

    把所有Activity通过继承基类或调用函数的方式记录下来,退出时逐一finish;通过使用广播机制退出整个应用,我们首先自定义一个抽象的MyActivity继承系统的Activity,然后在这个自定义的MyActivity中添加退出的方法,然后在整个应用中的所有Activity都继承我们自定义的MyActivity,当我们需要完全退出的时候,就可以调用这个close()方法,实现完全退出

    public abstract class MyActivity extends Activity {  
       
        // 写一个广播的内部类,当收到动作时,结束activity   
        private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {  
            @Override  
            public void onReceive(Context context, Intent intent) {  
                close();  
            }  
        };  
           
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
                // 在onCreate中注册广播   
            IntentFilter filter = new IntentFilter();  
            filter.addAction(Attribute.PAGENAME);  
            registerReceiver(this.broadcastReceiver, filter); // 注册   
        }  
       
        /** 
         * 关闭 
         */  
        public void close() {  
            Intent intent = new Intent();  
            intent.setAction(Attribute.PAGENAME); // 说明动作   
            sendBroadcast(intent);// 该函数用于发送广播   
            finish();  
        }  
        @Override  
        protected void onDestroy() {  
            super.onDestroy();  
            unregisterReceiver(broadcastReceiver);// 在onDestroy注销广播。   
        }  
    }  

    二、用application的方式

    使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器(具体实现自己处理,使用LinkedList等)专门负责存储新开启的每一个Activity,并且容易理解、易于操作,非常不错!
    MyApplication类(储存每一个Activity,并实现关闭所有Activity的操作)
    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对象实例容器中
    MyApplication.getInstance().addActivity(this);
    在需要结束所有Activity的时候调用exit方法
    MyApplication.getInstance().exit();
  • 相关阅读:
    Codeforces 1000C Covered Points Count
    Array类型
    Object对象
    变量、作用域与内存
    window.onload 方法脚本
    页面的性能优化
    node属性
    JavaScript图片
    DOM节点
    canvas象棋 画图
  • 原文地址:https://www.cnblogs.com/ct732003684/p/2860920.html
Copyright © 2020-2023  润新知