更好的管理活动

Posted 837634902why

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更好的管理活动相关的知识,希望对你有一定的参考价值。

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














































以上是关于更好的管理活动的主要内容,如果未能解决你的问题,请参考以下文章

Android 片段和活动

Android:使用支持片段管理器时复制片段

android - 从活动调用完成会破坏托管片段吗?

仅在一个片段中隐藏状态栏并在其他片段中显示

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

不同活动的片段之间的共享元素转换