android应用程序退出---小结

本文讨论了四种不同的安卓应用退出逻辑实现方式:使用工具类管理Activity列表并逐一关闭;通过注册与注销广播来关闭BaseActivity;及时关闭不再需要的Activity;以及通过杀死进程的方式确保程序完全退出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这段时间跟几个朋友讨论了一下应用退出的逻辑,

1、有人会编写一个工具类(或者直接写在Application)将所有的activity都放在里面 当用户将程序退出的时候通过循环清除所有的activity保证所有的activity都关闭了

 首先创建List<Activity> list=new ArrayList<Activity>();

写一个添加activity的方法,判断集合里面没有这个activity就添加

public void addActivity_(Activity activity) {

if (!oList.contains(activity)) {
oList.add(activity);
}

}

删除其中一个activity 判断集合里面有这个activity

public void removeActivity_(Activity activity) {

if (oList.contains(activity)) {

    oList.remove(activity);

    activity.finish();
}
}

删除所有的activity 循环所有

public void removeALLActivity_() {
    
for (Activity activity : oList) {

     activity.finish();
}

}

2、有人说在BaseActivity的onCreate里面注册一个动态广播,在销毁的方法里面注销广播,通过广播关闭BaseActivity类

定义一个类继承BroadcastReceiver 一半都会写在BaseActivity里面

public class MyBroadcast_Broad extends BroadcastReceiver {

接收发过来的广播内容


public void onReceive(Context arg0, Intent intent) {

int closeMy= intent.getIntExtra("closeMy", 0);

if (closeMy== 1) {

关闭当前activity

finish()

}

}

动态注册广播

MyBroadcast_Broad  mybroad= new MyBroadcast_Broad ();

 IntentFilter intentFilter = new IntentFilter("xxx.xxx.xxxActivity");

registerReceiver(mybroad, intentFilter);

页面销毁的时候注销广播

protected void onDestroy() {

super.onDestroy();

unregisterReceiver(mybroad);

}

重写onKeyDown()方法 发送广播

Intent in = new Intent(xxx.xxx.xxxActivity);

in.putExtra("closeMy“,1);

sendBrodcast(in);发送广播

3、有人说当有不需要的活动及时finish()掉 当要退出的时候栈里面除了当前的activity就没有activity了 所以直接finish()就好;

4、有人说通过杀死自己的进程关闭程序Process.killProcess(Process.myPid());

个人觉得当确定栈里面没有activity后再杀死自己的进程,这样就保证程序完全退出了

重写 onKeyDown() 

2秒钟点击两次 执行

finish();

Process.killProcess(Process.myPid());

写完了 ,下班了先,有路过的朋友在给补充吧。。。呲牙、、呲牙、、


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值