首页 > 其他分享 >app一键退出功能---笔记

app一键退出功能---笔记

时间:2024-07-04 17:27:24浏览次数:17  
标签:ActivityManager app activity 一键 --- 广播 Activity public

问题本质包含两个部分

1.一键结束当前所有的activity

2.一建结束当前的app进程

方式一,采用Activity的启动模式 SingleTask

将app入口的activity设置成singleTask模式,在xml中进行配置。

在activity中重写 onNewIntent().

优点:使用方便简单,

缺点:1.规定了app入口activity采用singleTask启动模式

            2.使用范围局限,只能结束当前任务栈的Activity,若出现多任务栈(即采用singgleInstance启动模式),无法处理。

方式二,通过系统任务栈

通过 ActivityManager 获取当前系统的任务栈&把栈内所有Activity逐个退出具体使用

@TargetApi (Build.VERSION_CODES.LOLLIPOP)
// 1.通过Context获取ActivityManager
ActivityManager activityManager = (ActivityManager)
context. getApplicationcontext) .getsystemserviceContext.ACTIVITY_SERVICE);
// 2. 通过ActivityManager获取任务栈
List<ActivityManager.AppTask> appTaskList = activityManager.getAppTasks) ;
1/ 3. 逐个关闭Activity
for (ActivityManager.AppTask appTask : appTaskList) {
appTask. fini shAndRemoveTask() ;
}
// 4. 结束进程
// System.exit(0);

优点:使用方便简单, 

缺点:1.规定了app入口activity采用singleTask启动模式

            2.使用范围局限,只能结束当前任务栈的Activity,若出现多任务栈(即采用singgleInstance启动模式),无法处理。

方式三,BroadcastReceiver

使用 BroadcastReceiver 广播监听

  • 原理:在每个 Activity 里注册广播接收器(响应动作=关闭自身);当需要退出 App 时 发送广播请求即可
  • 具体实现

步骤1:自定义广播接收器

public class ExitAppReceiver extends BroadcastReceiver {
private Activity activity;
public ExitAppReceiver(Activity activity){
this.activity = activity;
}
@override
public void onreceive(Context context, Intent intent) {
activity.finish();
}
}
步骤2:在每个 Activity 里注册广播接收器(响应动作=关闭自身)
public class Activity extends AppCompatActivity {
private ExitAppR

标签:ActivityManager,app,activity,一键,---,广播,Activity,public
From: https://blog.csdn.net/qq_28909387/article/details/140183794

相关文章

  • 当你不小心使用了 git reset --hard HEAD^
    会话总结1.使用gitreset--hardHEAD^后如何恢复撤销的gitcommit提交知识点:gitreset--hardHEAD^会回退到前一个提交,并删除工作目录中的更改。通过gitreflog查看操作历史记录,找到被回退的提交哈希值。使用gitreset--hard<commit_hash>恢复到特定的提交。......
  • 【步进电机梯形加减速--原子哥笔记】
    简介说明:具体看正点原子电机例程文件步进电机因其无需反馈就能对位置和速度进行控制而在工业自动化设备中的应用极为广泛,如下图所示,假设该装置使用步进电机实现物体X的移动,系统要求从A点出发,到B点停止,移动的时间越短越好且系统稳定。根据步进电机的特性,最大程度加......
  • 玄机——第四章 windows实战-emlog wp
    文章目录一、前言二、概览简介三、参考文章四、步骤(解析)准备阶段#1.0步骤#1通过本地PCRDP到服务器并且找到黑客植入shell,将黑客植入shell的密码作为FLAG提交;拓展1.1步骤#2通过本地PCRDP到服务器并且分析黑客攻击成功的IP为多少,将黑客IP作为FLAG提......
  • 【AppStore】一文让你学会IOS应用上架Appstore
    前言咱们国内现在手机分为两类,Android手机与苹果手机,现在用的各类APP,为了手机的使用安全,避免下载到病毒软件,官方都极力推荐使用手机自带的应用商城进行下载,但是国内Android手机品类众多,手机商城各式各样,做不到统一,所以Android的APP上架得一个一个平台去申请上架,一直让开发人员头......
  • GBU2510-ASEMI储能专用整流桥GBU2510
    编辑:llGBU2510-ASEMI储能专用整流桥GBU2510型号:GBU2510品牌:ASEMI封装:GBU-4正向电流(Id):25A反向耐压(VRRM):1000V正向浪涌电流:200A正向电压(VF):1.10V引脚数量:4芯片个数:4芯片尺寸:88MIL功率(Pd):中小功率设备工作温度:-55°C~150°C类型:整流扁桥、插件整流桥应用领域工业电源......
  • Yi.Admin+Blazor上手教程系列3-新项目的一些基本设置
    1、修改swg的组名配置ApplicationService//动态ApiConfigure<AbpAspNetCoreMvcOptions>(options=>{options.ConventionalControllers.Create(typeof(YiAbpApplicationModule).Assembly,options=>options.RemoteServiceName="default");......
  • Note -「Analysis」“重聚是你我共同的回答”(S1~S10)
    \[\textit{Litar!}\newcommand{\opn}[1]{\operatorname{#1}}\newcommand{\card}[0]{\opn{card}}\newcommand{\E}[0]{\exist}\newcommand{\A}[0]{\forall}\newcommand{\l}[0]{\left}\newcommand{\r}[0]{\right}\newcommand{\eps}[0]{\varepsilon......
  • 接口测试工具-Postman
    Postman是API测试工具。选择请求方法(GET、POST、PUT等)、输入URL、添加请求头和请求体来发送HTTP请求。发送请求后,用户可以在响应区域查看服务器的响应。官网:https://web.postman.com/基础用法用例管理集合>文件夹>用例CreateColllections>AddFolder>AddReques......
  • KBL610-ASEMI无人机专用整流桥KBL610
    编辑:llKBL610-ASEMI无人机专用整流桥KBL610型号:KBL610品牌:ASEMI封装:KBL-4最大重复峰值反向电压:1000V最大正向平均整流电流(Vdss):6A功率(Pd):中小功率芯片个数:4引脚数量:4类型:整流扁桥、整流桥正向浪涌电流:200A正向电压:1.10V最大输出电压(RMS):封装尺寸:如图工作温度:-55°......
  • 对标 GPT-4o,法国开源实验室发布多模态大模型 Moshi;腾讯汤道生:AI 领域不应只关注大模型
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点,......