管理应用自启动的方案
方案一
通过setComponentEnabledSetting方式,禁止掉应用的监听开机启动的广播组件。
代码如下:
getContext().getPackageManager().setComponentEnabledSetting(new ComponentName("包名", "组件名"),PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);
缺点:
- 让组件不能再使用,除非设置成COMPONENT_ENABLED_STATE_ENABLED。
- 系统开关机仍然有效,但应用被卸载此属性会失效。
方案二
通过forceStopPackage方式,将应用stop掉。应用被stop后,stopped属性变为true,
如果应用没再被使用,开机启动时即使接收了开机广播应用也不会自启动。
代码如下:
private void setPackageForceStop(String pkg) {try {Method method = Class.forName("android.app.ActivityManager").getMethod("forceStopPackage", String.class);if (mActivityManager == null) {mActivityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);}method.invoke(mActivityManager, pkg);} catch (Exception e) {e.printStackTrace();}
}
缺点:
- 如果该应用是系统应用,每次开机启动stopped属性会被置为false,即该应用能开机自启。
- 同样的,如果该应用被卸载后重装也会导致stopped属性会被置为false,即该应用能开机自启。
- 应用被stop后然后被使用,stopped属性会被置为false,即该应用能开机自启。
方案三
通过拦截应用的开机广播,不让应用接收到开机广播。
因开机广播是全局的、无序的广播,暂时没有办法做到拦截应用的开机广播
(系统端能做到,但这是应用层的业务,显然系统端不会做这样不合理的处理)。
方案四
通过禁止应用的开机广播权限,不让应用接收到开机广播。
此想法应该是,暂时没法拦截应用的开机广播,就想法禁止应用的开机广播权限。
总之,就是不想让应用接收到开机广播,但目前没有好的办法去禁止应用的开机广播权限。
总结
方案一和方案二是一般应用的实现方式,但两者都有一些小缺点,并且两者的实现都不能保证应用开机后不自启。
所以,无论采用方案一和方案二,目前能想到的最好方式还是,管理应用自启动的APK自己开机自启后,
stop掉被限制开机自启的应用,然后,如果此管理APK不必要,可以kill掉自己。
备注
- 查看应用的stopped属性:dumpsys package com.tcl.tvweishi | grep stop
- shell命令stop掉应用:am force-stop com.tcl.tvweishi
管理应用自启动的方案相关推荐
- Ubuntu管理开机自启动程序
点击左侧的图标,在搜索栏上输入gnome-session,即可看到 "启动应用程序"的图标, 如下图: 在此管理开机自启动程序
- 敏捷管理之绩效考核方案
前段时间,公司签了年终奖确认.觉得公司发放年终奖完全是凭主观发放,没有事实依据,由此产生了对如何发放年终奖的一些想法. 奖金发放作为激励员工最直接的手段,往往也是让管理人员最难抉择的,而且很多公司,都 ...
- 中后台管理信息系统通用原型方案、业务中台管理系统、业务中台架构、管理信息系统、订单管理、客户管理、货源管理、财务管理、客服管理、营销管理、办公申请、协作管理、CMS、OA、CRM、ERP、Axure
本作品是一套通用型的中后台信息系统原型方案,可以快速扩展并输出标准美观的中后台产品原型,极大的提升输出效率和节省协作成本.方案中提供了几十套不同风格和结构的系统框架,并涵盖了大量的常用组件和通用页面模 ...
- 关于QQ号的分发管理机制的基本方案的设计猜想和分析讨论
关于QQ号的分发管理机制的基本方案的设计猜想和分析讨论 众所周知,QQ号最开始是5位,后来逐渐变为11位,我开始用QQ的时候,一般都是申请到10位,有时候能申请到9位,据说还有传闻"同学的同 ...
- 安全生产管理云执法平台方案
安全生产管理云执法平台方案 1.项目背景 随着社会经济的发展,全国各地的生产安全伤亡事故一直是高频率发生,如煤矿.危险化学品和烟花爆竹安全生产等等,如何高标准调度统计和安全生产行政执法分析工作;依法组 ...
- 单节磷酸铁锂电池充电管理芯片IC驱动方案3.6V充电芯片手电筒_低压应急球泡灯适用
单节磷酸铁锂电池充电管理芯片IC驱动方案3.6V充电芯片手电筒_低压应急球泡灯适用 2:品牌名称:泛海微 3方案特点: 4.(1)产品特点 特点: 3.6V独立的单节磷酸铁锂电池充电管理 ...
- LInux系统两套管理网络连接的方案interfaces和Network-Manager
一.Linux系统两套管理网络连接的方案,两套方案是冲突的,不能同时共存 1./etc/network/interfaces(/etc/init.d/networking) 2.Network-Man ...
- react中数据状态管理的四种方案
我们为什么需要状态管理? (1) 一个是为了解决相邻组件的通信问题. 虽然可以通过「状态提升」解决,但有两个问题: 每次子组件更新,都会触发负责下发状态的父组件的整体更新(使用 Context 也有这 ...
- 计算机教学考核方案,教师计算机使用管理制度和考核方案学校教学管理制度
<教师计算机使用管理制度和考核方案学校教学管理制度>由会员分享,可在线阅读,更多相关<教师计算机使用管理制度和考核方案学校教学管理制度(3页珍藏版)>请在人人文库网上搜索. 1 ...
最新文章
- 将Byte数组转化为String
- 行业新风向!AI人才缺口30万,单个项目最高补贴1000万元!
- css设置标题边框,css 如何让文字标题显示在边框上?
- linux各机器之间配置无密码访问
- html按钮冻结,Vue js按钮冻结dom
- 太硬核!2亿股万科股票,约53亿元,一次性全部捐给清华,干一件大事!
- 基于百度贴吧的HIV高危人群特征分析
- Mybatis if test 中int判断非空的坑
- slice 和splice 的区别 js
- 【sklearn第七讲】数据集加载工具
- Node安装模块命令
- 《UnityAPI.Transform变换》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Transform+eulerAngles+LookAt+立钻哥哥++OK++)
- Android花样Text设置神器之SpanableString
- 北京政协:电子垃圾回收是亟待破解的难题
- 振荡电路设计原理与设计
- Human Pose Estimation浅述
- Flutter问题记录 - Unable to find bundled Java version
- JavaScript+css实现的喜庆活动邀请函多页面html源码
- 计算机图形学-走样与反走样
- R语言 cowplot包快速拼图
热门文章
- 数据分析如何赋能社区团购? by彭文华
- iOS开发 React-native开发环境配置
- android usb camera对指定应用,默认开启,不弹框
- html银行绑卡对接支付宝,银行当年为什么同意支付宝这种快捷支付方式的接入?...
- Dynamic-OFA: Runtime DNN Architecture Switching for Performance Scaling on Heterogeneous Embedd Pla
- 【Python核心】面向对象
- 华硕开启uefi引导的方法是什么_华硕主板设置uefi引导的图文步骤
- R语言空间数据分析学习笔记1——读取矢量数据并可视化
- 自定义导航栏titleView在iOS10以上的问题
- 轻松搞定OOBE界面的全屏截图