关于在任何界面都能结束程序问题

关于在任何界面都能结束程序问题

kotlin版本

这里添加的是一个kotlin file 文件
注意Kotlin中调用BasicActivity中的方法可以直接通过单例类Object来调用
ActivityCollector.finishAll()。

package com.example.classtestkotlin

import android.app.Activity
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity

open class  BasicActivity :AppCompatActivity(){
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
       Log.d("BasicActivity",javaClass.simpleName)//这一句用于判断当前Activity是哪一个
        ActivityCollector.addActivity(this)//必须加
    }
    object ActivityCollector{
        private val activities= ArrayList<Activity>()
        fun addActivity(activity: Activity){
            activities.add(activity)//将activity添加到数组中
        }
        fun removeActivity(activity: Activity){
            activities.remove(activity)//从数组中移除
        }
        fun finishall(activity: Activity){
            for (activity in activities){
                if (!activity.isFinishing) {
                    activity.finish()//结束activity
                }
            }
            activities.clear()//清除数组中的activity
        }
    }
}

java版本

这里是一个类文件

package com.example.classtest;

import android.app.Activity;
import android.os.Bundle;

import androidx.appcompat.app.AppCompatActivity;

import java.util.LinkedList;
import java.util.List;

public class BasicActivity extends AppCompatActivity {
    private List<Activity> list = new LinkedList<Activity>();
    //上面创建一个数组存入所有的Activity
    private static  BasicActivity instance;
    //构建一个静态对象防止每次调用该类时不创建对象无法调用
    private BasicActivity(){}
    //构造方法
     public synchronized static BasicActivity getInstance(){
         if (instance == null){
             instance = new BasicActivity();
         }
         return instance;//很简单判断有没有这个实例有返回使用没
         //没的话创建一个新的
     }
     public void addActivity(Activity activity){
         list.add(activity);
     }
     public  void finish(){
         try{
             for(Activity activities:list){
                 if(activities != null)
                     activities.finish();
             }
         }catch (Exception e){
             e.printStackTrace();

         }finally {
             System.exit(0);
         }//关闭所有app


     }
     public void onLowMemory(){
         super.onLowMemory();
         System.gc();
     }



    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值