zoukankan      html  css  js  c++  java
  • 更好的管理活动

    1》知晓当前是哪一个活动

    建立一个BaseActivity 类继承AppCompatActivity 类,然后在其中输出当前活动的名称,将原来继承AppCompatActivity 类的类改为继承BaseActivity

    public class BaseActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.d("NaseActivity", getClass().getSimpleName());
    ActivityCollector.add(this);
    }

    @Override
    protected void onDestroy() {
    super.onDestroy();
    ActivityCollector.remove(this);
    }
    }

    2》活动的统一销毁

    新建类ActivityCollector 在其中创建一个List同于安放新创建的活动,在需要时直接调用其中的finishiall函数将所有活动一起销毁

     

    
    
    package com.example.activitytest;

    import android.app.Activity;

    import java.util.ArrayList;
    import java.util.List;

    /**
    * Created by lenovo on 2019/1/23.
    */

    public class ActivityCollector {
    public static List<Activity> activities=new ArrayList<>();

    public static void add(Activity activity)
    {
    activities.add(activity);
    }
    public static void remove(Activity activity)
    {
    activities.remove(activity);
    }
    public static void finishiall(){
    for (Activity activity:activities){
    if(!activity.isFinishing()){
    activity.finish();
    }
    }
    }
    }

    调用函数销毁所有的活动时可以使用 android.os.Process.killProcess(android.os.Process.myPid());来销毁程序有利于保证数据的完全销毁

     

    public void onClick(View v)
    {
    ActivityCollector.finishiall();
    android.os.Process.killProcess(android.os.Process.myPid());
    }
     
     
  • 相关阅读:
    freemarker时间转换197
    用FileZilla服务器端和客户端实现本机与虚拟机之间文件上传和下载197
    springboot pom 详解197
    eclipse svn197
    eclipse 安装git197
    listen()函数中backlog参数分析
    linux 函数库使用
    gdb调试问题汇总
    gdb调试多线程
    linux-C 多线程编程
  • 原文地址:https://www.cnblogs.com/837634902why/p/10306842.html
Copyright © 2011-2022 走看看