美文网首页
接收开机广播缓慢

接收开机广播缓慢

作者: 小的橘子 | 来源:发表于2018-01-22 20:11 被阅读0次

Android接收开机广播

  1. 注册广播

可通过动态注册,但如果需要开机去做一件事,则必须静态注册

<receiver android:name=".autoreboot.BootReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>                       
    </intent-filter>         
</receiver> 
  1. 添加权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

这种接收广播方式的时间过长,一般在1min左右。

如何加快开机自启

  • 系统开发人员

  • 应用开发人员

<receiver android:name=".autoreboot.BootReceiver">
    <intent-filter android:priority="1000">
        <action android:name="android.intent.action.BOOT_COMPLETED" />                       
    </intent-filter>         
</receiver> 

提高priority为1000可以加快接收速度,但系统app的接收速度依然高于普通app。系统10s左右可以接收到,app端大概20s左右

但有的app例如360手机助手也可以做到更早的接收到开机广播,反编译发现其设置优先级数值有区别

<receiver android:name=".autoreboot.BootReceiver">
    <intent-filter android:priority="2147483647">
        <action android:name="android.intent.action.BOOT_COMPLETED" />                       
    </intent-filter>         
</receiver> 

通过给apk设置该优先级,我们的apk可以在10s左右接收到开机广播,从而大大提高自动速度。

将priority的优先级设置为了2147483647,这显然是不符合官方文档的要求。
在我们Android学习中我们知道当priority的值大于1000的时候会默认使用1000作为priority的值,但是2147483647确实实现了更早的将应用开启的效果,那么2147483647是什么值有这么大的威力呢,大家可以通过计算器得到,其实2147483647就是最大的int类型整数,很有可能是Android没有对这个值做判断从而导致了这一个结果.

相关文章

  • 接收开机广播缓慢

    Android接收开机广播 注册广播 可通过动态注册,但如果需要开机去做一件事,则必须静态注册 添加权限 这种接收...

  • 设置app开机启动

    AndroidManifest内: 1、添加接收开机广播的权限 2、声明一个开机广播接收器,需要添加两个广播and...

  • 有关应用开机自启动的一些记录

    在开发中,有时候会开机自动启动我们的应用的需求,之前的普遍做法是有接收开机广播,在广播接收者中启动服务执行任务。 ...

  • 【Android】实现应用开机自启动

    1.新建广播接收者,监听开机广播,启动应用 2.AndroidManifest.xml注册广播 在AndroidM...

  • Android-四大组件

    广播:1、例子:当开机完成后系统会产生一条广播,接收到这条广播就能实现开机启动服务的功能;当网络状态改变时系统会产...

  • 监听开机自动启动应用

    开机自动应用 1.接收开机广播2.在开机广播中启动应用 注意: 在上下文之外,需要创建一个新的任务栈来启动acti...

  • 第一行代码 -- 笔记2

    五、广播机制 1.接收系统广播 动态注册监听时间变化 静态注册实现开机启动 在 Android 8.0 系统之后,...

  • BroadcastReceiver的研究总结

    一、广播接收者的重要性 1.在Android系统中,广播体现在方方面面,例如当开机完成后系统会产生一条广播,接收到...

  • Android 应用开机自启和无需权限开启悬浮框

    开机自启主要自定义广播接收类,且需要在清单文件中注册,不要在代码中动态注册。 开始编写广播接收器: 再看来看看在服...

  • Android 实现开机启动 Service 或 APP

    Android 实现开机启动 Service 或 APP 创建一个广播接收器,重写onReceive()方法,在其...

网友评论

      本文标题:接收开机广播缓慢

      本文链接:https://www.haomeiwen.com/subject/fferaxtx.html