2019独角兽企业重金招聘Python工程师标准>>>

Android应用如何开机自启动、自启动失败原因

本文主要介绍Android应用如何开机自启动、自启动失败的原因、adb命令发送BOOT_COMPLETED
1、Android应用如何开机自启动
(1)、在AndroidManifest.xml中注册

AndroidManifest.xml中注册BOOT_COMPLETED Action

注意不仅要添加android.intent.action.BOOT_COMPLETED对应的action,还需要添加对应的uses-permission

(2)、Receiver接收广播进行处理

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14

public class BootBroadcastReceiver extends BroadcastReceiver {
     public static final String TAG = "BootBroadcastReceiver" ;
     @Override
     public void onReceive ( Context  context , Intent  intent ) {
         String action = intent . getAction ( ) . toString ( ) ;
         if ( action . equals ( Intent . ACTION_BOOT_COMPLETED ) ) {
// u can start your service here
             Toast . makeText ( context , "boot completed action has got" , Toast . LENGTH_LONG ) . show ( ) ;
             return ;
         }
     }
}

2、自启动失败的原因
接收不到BOOT_COMPLETED广播可能的原因
(1)、BOOT_COMPLETED对应的action和uses-permission没有一起添加
(2)、应用安装到了sd卡内,安装在sd卡内的应用是收不到BOOT_COMPLETED广播的
(3)、系统开启了Fast Boot模式,这种模式下系统启动并不会发送BOOT_COMPLETED广播
(4)、应用程序安装后重来没有启动过,这种情况下应用程序接收不到任何广播,包括BOOT_COMPLETED、ACTION_PACKAGE_ADDED、CONNECTIVITY_ACTION等等。
Android3.1之后,系统为了加强了安全性控制,应用程序安装后或是(设置)应用管理中被强制关闭后处于stopped状态,在这种状态下接收不到任何广播,除非广播带有FLAG_INCLUDE_STOPPED_PACKAGES标志,而默认所有系统广播都是FLAG_EXCLUDE_STOPPED_PACKAGES的,所以就没法通过系统广播自启动了。所以Android3.1之后
(1)、应用程序无法在安装后自己启动
(2)、没有ui的程序必须通过其他应用激活才能启动,如它的Activity、Service、Content Provider被其他应用调用。
存在一种例外,就是应用程序被adb push you.apk /system/app/下是会自动启动的,不处于stopped状态。具体说明见:
http://developer.android.com/about/versions/android-3.1.html#launchcontrols
http://commonsware.com/blog/2011/07/13/boot-completed-regression-confirmed.html

3、adb发送BOOT_COMPLETED
我们可以通过

1
adb  shell  am  broadcast - a android . intent . action . BOOT_COMPLETED

命令发送BOOT_COMPLETED广播,而不用重启测试机或模拟器来测试BOOT_COMPLETED广播,这条命令可以更精确的发送到某个package,如下:

1
adb  shell  am  broadcast - a android . intent . action . BOOT_COMPLETED - c android . intent . category . HOME - n package_name / class_name

转载于:https://my.oschina.net/sarashare/blog/637353

Android应用如何开机自启动、自启动失败原因相关推荐

  1. 实现 Android 应用在开机时自启动

    如果您在开发一个需要实时更新数据的应用程序,当有新的数据的时候提醒用户查看新的数据,那么您需要在后台开起一个Service,然后实时的去网 络上获取数据,但是如果用户关机重启,您的Service可能就 ...

  2. Android监听开机广播自启动程序

    应用开机自启动的原理是监听开机广播android.intent.action.BOOT_COMPLETED, 监听到该广播时会启动进程,进入Application 1.在Manifest中声明广播 & ...

  3. android 6.0关闭开机启动器,Android实现开机自启动及开机自启动失败原因

    1.开机自启动实现代码 BroadcastReceiver开机自启动实现,MainActivity.class为自启动显示的页面. public class BootBroadcastReceiver ...

  4. Android功耗(16)---自启动管理

    Android性能优化 -- 自启动管理 自启动管理简介 Android手机上安装的很多应用都会自启动,占用资源越来越多,造成系统卡顿等现象.良好的自启动管理方案管理后台自启动和开机自启动,这样就可以 ...

  5. 【Android 逆向】启动 DEX 字节码中的 Activity 组件 ( 使用 DexClassLoader 获取组件类失败 | 失败原因分析 | 自定义类加载器没有加载组件类的权限 )

    文章目录 一.使用 DexClassLoader 获取组件类失败报错 二.失败原因分析 一.使用 DexClassLoader 获取组件类失败报错 在上一篇博客 [Android 逆向]启动 DEX ...

  6. Linux 系统如何设置开机程序自启动

    这里写目录标题 1. Linux 系统如何设置开机程序自启动 1.1. /etc/rc.local 1.2. crontab(类似于 Windows 的任务计划服务) 1.3. 注册系统服务 1. L ...

  7. android rom打包失败,导致安卓手机刷机失败的原因有哪些?安卓刷机失败原因汇总...

    经常使用安卓手机的朋友都知道,当手机使用时间长了之后,多开几个程序便会出现手机卡顿的情况,目前解决这一现象比较好的办法就是刷机,当然刷机是有风险的,如果操作失误就可能会导致手机变砖,为了防止刷机新手在 ...

  8. 设置电脑开机软件自启动的简便小方法

      设置电脑开机软件自启动的方法有好几种,但我觉得这是最简便的一种,这里以一个多功能截图软件作为示例. 1. 打开文件夹 C:\ProgramData\Microsoft\Windows\Start ...

  9. linux 开机自动加载mod,linux 添加elasticsearch 开机重启(自启动)

    在 /etc/init.d 文件夹下建立脚本 eg:data.sh #chkconfig: 2345 80 90 #description:auto_run #!bin/bash export JAV ...

最新文章

  1. 谷歌CEO称公司预计每月收购一家小公司
  2. [BZOJ 4916]神犇和蒟蒻
  3. 河南职称计算机啥时间考试,河南省2020年高级职称考试时间与具体安排
  4. Mysql orangepi_SSH远程登录香橙派Orange Pi Zero2开发板的操作方法
  5. mysql 时间chuo格式化_mysql格式化日期
  6. Python标准库中的uuid
  7. [转载] Java 方法(方法重载)与数组
  8. Linux系统centos6.7上安装libevent
  9. 【数学】求三角形的外接圆圆心
  10. innerHTML、innerText和outerHTML的区别
  11. bash: node: command not found
  12. 奥迪坚技术革新带动信用卡呼叫中心管理升级
  13. 纷享销客百思特 | 数字化营销赋能企业新增长沙龙圆满落幕
  14. ICPC 2022西安回顾
  15. Mac和Windows共享文件,不借助任何软件
  16. linux 磁盘参数优化: barrier
  17. c 语言 pthread_create_【励达外语】第八篇 语言学习的5个关键期(上)
  18. 开学季,孩子们怎么学习?
  19. 中微单片机79F738
  20. MySQL数据库的简单使用(基础篇)

热门文章

  1. 拿什么留住你,我的程序员
  2. 06-Windows Server 2012 R2 会话远程桌面-标准部署-RD网关(RemoteApp)
  3. TCP/IP协议——ARP详解
  4. ELK环境搭建及client配置
  5. dos命令添加war包
  6. postgresql中DML操作
  7. [从菜鸟到高手演变]之智力题【史上最全】 (转)
  8. 更改chrome底色为护目色
  9. SAP Fiori应用的三种部署方式
  10. C#中String与byte[]的相互转换