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());
    }
     
     
  • 相关阅读:
    python3 TypeError: a bytes-like object is required, not 'str'
    Centos 安装Python Scrapy PhantomJS
    Linux alias
    Vim vimrc配置
    Windows下 Python Selenium PhantomJS 抓取网页并截图
    Linux sort
    Linux RSync 搭建
    SSH隧道 访问内网机
    笔记《鸟哥的Linux私房菜》7 Linux档案与目录管理
    Tornado 错误 "Global name 'memoryview' is not defined"
  • 原文地址:https://www.cnblogs.com/837634902why/p/10306842.html
Copyright © 2011-2022 走看看