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();
}
}