知晓当前活动和随时退出活动

1. 知晓当前是在哪一个活动


当接手别人写的项目时,了解是哪一个界面。
需要新建一个BaseActivity类,BaseActivity类继承自AppCompatActivity,并重写onCreate()方法,如下所示:
public class BaseActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle saveInstanceState){
super.onCreate(saveInstanceState);
Log.d("BaseActivity", getClass().getSimpleName());
}
}
接下来我们需要让BaseActivity成为ActivityTest项目中所有活动的父类就可以了。




2. 随时随地退出程序


新建一个ActivityCollector类作为活动管理器,代码如下所示:
public class ActivityCollector{
public static List<Activity> activities = new ArrayList<>();

public static void addActivity(Activity activity){
activities.add(activity);
}

public static void removeActivity(Activity activity){
activities.remove(activity);
}

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


在活动管理器中,我们通过一个List来暂存活动,然后提供了一个addActivity()方法用于想List中添加一个活动,提供了一个
removeActivity()方法用于从List中移除活动,最后提供了一个finishAll()方法用于将List中存储的活动全部销毁掉。


接下来修改BaseActivity中的代码,如下所示:


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

@Override
protected void onDeatory(){
super.onDeatory();
ActivityCollector.removeActivity(this);
}
}
在BaseActivity的onCreate()方法中调用了ActivityCollector的addActivity()方法,表明将当前正在创建的活动添加到活动
管理器里。重写onDeatory()方法,并调用了ActivityCollector的removeActivity()方法,表明将一个马上要销毁的活动从活
动管理器里移除。


从此不管你想在什么地方退出程序,只需要调用ActivityCollector的finishAll()方法就可以了。


当然你还可以在销毁所有活动的代码后面再加上杀掉当前进程的代码,以保证程序完全退出,杀掉进程的代码如下所示:
android.os.Process.killProcess(android.os.Process.myPid());

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值