方案一

通过setComponentEnabledSetting方式,禁止掉应用的监听开机启动的广播组件。

代码如下:

getContext().getPackageManager().setComponentEnabledSetting(new ComponentName("包名", "组件名"),PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);

缺点:

  1. 让组件不能再使用,除非设置成COMPONENT_ENABLED_STATE_ENABLED。
  2. 系统开关机仍然有效,但应用被卸载此属性会失效。

方案二

通过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

管理应用自启动的方案相关推荐

  1. Ubuntu管理开机自启动程序

    点击左侧的图标,在搜索栏上输入gnome-session,即可看到 "启动应用程序"的图标, 如下图: 在此管理开机自启动程序

  2. 敏捷管理之绩效考核方案

    前段时间,公司签了年终奖确认.觉得公司发放年终奖完全是凭主观发放,没有事实依据,由此产生了对如何发放年终奖的一些想法. 奖金发放作为激励员工最直接的手段,往往也是让管理人员最难抉择的,而且很多公司,都 ...

  3. 中后台管理信息系统通用原型方案、业务中台管理系统、业务中台架构、管理信息系统、订单管理、客户管理、货源管理、财务管理、客服管理、营销管理、办公申请、协作管理、CMS、OA、CRM、ERP、Axure

    本作品是一套通用型的中后台信息系统原型方案,可以快速扩展并输出标准美观的中后台产品原型,极大的提升输出效率和节省协作成本.方案中提供了几十套不同风格和结构的系统框架,并涵盖了大量的常用组件和通用页面模 ...

  4. 关于QQ号的分发管理机制的基本方案的设计猜想和分析讨论

    关于QQ号的分发管理机制的基本方案的设计猜想和分析讨论 众所周知,QQ号最开始是5位,后来逐渐变为11位,我开始用QQ的时候,一般都是申请到10位,有时候能申请到9位,据说还有传闻"同学的同 ...

  5. 安全生产管理云执法平台方案

    安全生产管理云执法平台方案 1.项目背景 随着社会经济的发展,全国各地的生产安全伤亡事故一直是高频率发生,如煤矿.危险化学品和烟花爆竹安全生产等等,如何高标准调度统计和安全生产行政执法分析工作;依法组 ...

  6. 单节磷酸铁锂电池充电管理芯片IC驱动方案3.6V充电芯片手电筒_低压应急球泡灯适用

    单节磷酸铁锂电池充电管理芯片IC驱动方案3.6V充电芯片手电筒_低压应急球泡灯适用 2:品牌名称:泛海微 3方案特点: 4.(1)产品特点 特点:   3.6V独立的单节磷酸铁锂电池充电管理    ...

  7. LInux系统两套管理网络连接的方案interfaces和Network-Manager

    一.Linux系统两套管理网络连接的方案,两套方案是冲突的,不能同时共存 1./etc/network/interfaces(/etc/init.d/networking) 2.Network-Man ...

  8. react中数据状态管理的四种方案

    我们为什么需要状态管理? (1) 一个是为了解决相邻组件的通信问题. 虽然可以通过「状态提升」解决,但有两个问题: 每次子组件更新,都会触发负责下发状态的父组件的整体更新(使用 Context 也有这 ...

  9. 计算机教学考核方案,教师计算机使用管理制度和考核方案学校教学管理制度

    <教师计算机使用管理制度和考核方案学校教学管理制度>由会员分享,可在线阅读,更多相关<教师计算机使用管理制度和考核方案学校教学管理制度(3页珍藏版)>请在人人文库网上搜索. 1 ...

最新文章

  1. 将Byte数组转化为String
  2. 行业新风向!AI人才缺口30万,单个项目最高补贴1000万元!
  3. css设置标题边框,css 如何让文字标题显示在边框上?
  4. linux各机器之间配置无密码访问
  5. html按钮冻结,Vue js按钮冻结dom
  6. 太硬核!2亿股万科股票,约53亿元,一次性全部捐给清华,干一件大事!
  7. 基于百度贴吧的HIV高危人群特征分析
  8. Mybatis if test 中int判断非空的坑
  9. slice 和splice 的区别 js
  10. 【sklearn第七讲】数据集加载工具
  11. Node安装模块命令
  12. 《UnityAPI.Transform变换》(Yanlz+Unity+SteamVR+云技术+5G+AI+VR云游戏+Transform+eulerAngles+LookAt+立钻哥哥++OK++)
  13. Android花样Text设置神器之SpanableString
  14. 北京政协:电子垃圾回收是亟待破解的难题
  15. 振荡电路设计原理与设计
  16. Human Pose Estimation浅述
  17. Flutter问题记录 - Unable to find bundled Java version
  18. JavaScript+css实现的喜庆活动邀请函多页面html源码
  19. 计算机图形学-走样与反走样
  20. R语言 cowplot包快速拼图

热门文章

  1. 数据分析如何赋能社区团购? by彭文华
  2. iOS开发 React-native开发环境配置
  3. android usb camera对指定应用,默认开启,不弹框
  4. html银行绑卡对接支付宝,银行当年为什么同意支付宝这种快捷支付方式的接入?...
  5. Dynamic-OFA: Runtime DNN Architecture Switching for Performance Scaling on Heterogeneous Embedd Pla
  6. 【Python核心】面向对象
  7. 华硕开启uefi引导的方法是什么_华硕主板设置uefi引导的图文步骤
  8. R语言空间数据分析学习笔记1——读取矢量数据并可视化
  9. 自定义导航栏titleView在iOS10以上的问题
  10. 轻松搞定OOBE界面的全屏截图