在android中,Activity的生命周期一般是由系统进行控制的,即使我们能手都的进行finish()。 就利用这一点,来实现本文的功能。
在退出整个应用的时候,关闭所有activity。
多了不在说,都比较简单。 上代码,一看就懂。
/**
* activity管理器
* @author suntony
*
*/
public class ATManager {
//acticity打开列表
private static List<Activity> activityList = new LinkedList<Activity>();
public static void addActivity(Activity activity){
activityList.add(activity);
Log.d(Const.TAG, "ATManager.addActivity|activity="+activity+",activityList size="+activityList.size());
}
/**
* 退出应用
* @param context
*/
public static void exitClient(Context context){
for(int i=0; i < activityList.size(); i++){
//如果某个activity已经被系统回收,他就为null了。
if(null!=activityList.get(i)){
//否则,手动调用关闭。
activityList.get(i).finish();
}
}
ActivityManager activityManager = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);
int version = 0;
//获得系统版本
if(Build.VERSION.SDK!=null){
version = Integer.parseInt(Build.VERSION.SDK);
}
if(version < 8){
activityManager.restartPackage("com.yizhao.activity");
System.exit(0);
}else{
Log.d(Const.TAG, "version error, exit system fail!");
}
}
}
代码使用注意:
- 在每一处启动activity的地方都要调用addActivity方法。
- 在退出的地方调用exitClient方法。
PS: 追后,还是附上【一找客户端】工程代码。注意查看代码:ATManager。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(四):结合BotSharp
· MQ 如何保证数据一致性?