关于APP接收开机广播延迟问题,解决开机启动慢问题_开机广播接受慢_findAndroidViewById的博客-程序员秘密

技术标签: android  开启启动慢  开机启动  开机广播慢  

       我们知道在Android中我们可以监听开机广播(android.intent.action.BOOT_COMPLETED)来实现开机自启动,当然能够实现开机自启动的前提条件是该应用至少已经被手动启动过一次,但是这样任然会出现一些问题,比如如果我们接收广播的优先级比较低那么我们开机之后APP启动就会比较靠后,但是既然设置为开机启动呢,那么我们肯定是希望自己的APP越早被启动越好的,基于这种情况我们可以调整接收广播的优先级,在官方文档中我们看到android:priority的默认值为0 取值范围围-1000到1000,priority的值与其等级是成正比的.但是在某些情况下我们发现即使将priority的等级设置为1000还是有些应用可以在我们之前启动,比如360手机助手,那么我们通过对360手机助手反编译查看其AndroidMainfest.xml文件来看发现360手机助手对其中一个监听开机广播的广播接受者的处理很有意思

      如下所示为360手机助手的相关代码

<receiver android:enabled="true" android:exported="true" android:name="com.qihoo.receiver.CoreBroadcastReceiver" android:process="com.qihoo.daemon">
    <intent-filter android:priority="2147483647">
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
        <action android:name="com.qihoo.appstore.ACTION_DAEMON_CORE_SERVICE"/>
        <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
        <action android:name="android.intent.action.PHONE_STATE"/>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
        <category android:name="android.intent.category.DEFAULT"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.PACKAGE_ADDED"/>
        <action android:name="android.intent.action.PACKAGE_REPLACED"/>
        <action android:name="android.intent.action.PACKAGE_REMOVED"/>
        <data android:scheme="package"/>
    </intent-filter>
</receiver>

在这段代码中我们可以看到他将priority的优先级设置为了2147483647,这显然是不符合官方文档的要求的在我们Android学习中我们知道当priority的值大于1000的时候会默认使用1000作为priority的值,但是2147483647确实实现了更早的将应用开启的效果.

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u014379448/article/details/77241062

智能推荐

oracle 10g中db_recovery_file_dest和log_archive_dest参数的关系_mydba_bin的博客-程序员秘密

oracle 10g中db_recovery_file_dest和log_archive_dest参数的关系2011-09-20 11:03:10      我来说两句         收藏 我要投稿在10g中,如果指定了db_recovery_file_dest 参数,那么归档日志将存放到这个参数指向的目录下,如果同时指定了log_archive_desc,则将同时往这两个参数指

vue 日历 vue-calendar_爱拉比的博客-程序员秘密

1.github上搜索vue-calendar2.src/app.vue文件中有日历组件&lt;calendarref="calendar1":events="calendar1.events":lunar="calendar1.lunar":value="calendar1.value":begin="calendar1.beg...

什么是PAXOS_Zeb-D的博客-程序员秘密

本文章来源于:https://github.com/Zeb-D/my-review ,请star 强力支持,你的支持,就是我的动力。[TOC]背景下面介绍Paxos 协议,它是一个比两阶段提交要轻量的保证一致性的协议。在分布式系统中,节点之间的信息交换有两种方式,一种是通过共享内存共用一份数据;另一种是通过消息投递来完成信息的传递。而在分布式系统中,通过消息投递的方式会遇到很多意外...

java-编辑_minihuabei的博客-程序员秘密

api控制器serviceUserResult

IPv6的思科培训使用ariance(EIGRP)命令_canifornia0的博客-程序员秘密

IPv6的思科培训使用ariance(EIGRP)命令   之前,我解释一下这周的文章,我想感谢你们所有的人的读者读了我以前的文章;你真是我的灵感。   O.K.让我们言归正传,为了让您能够使用Cisco IOS的​​外部配置?命令命名ariance?在Cisco路由器(S)需要在IPv6网络环境中运行Cisco IOS 12.4(6)T或更高。   下面是正确的语法,例如使用命令:   语法:差

随便推点

vue的响应式原理简化代码_vue代码简化_宋小米的博客-程序员秘密

vue.jsimport {Dep} from './dep'import {Compiler} from './compiler'class Observe{ obj:Object; constructor(obj){ this.obj = obj; this.walk(); } walk(){ let keys...

给编译好的DLL增加签名_weixin_33826268的博客-程序员秘密

两个步骤,记录如下,主要用在silverlight中引用的dll要签名时:"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\ildasm.exe" .\RestSharp.dll /out:.\Signed\RestSharp.il"C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm...

out of source 编译_tianchengi的博客-程序员秘密

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

iOS中http转https,及https请求抓包_ios16 http https_漂泊_的博客-程序员秘密

iOS9推出的时候,苹果希望大家使用https协议,来提高数据传输之间的安全性。下面我就从最简单的代码介绍,如何在工程中设置,来支持https的请求。一、证书准备篇1.证书转换在服务器人员,给你发送的crt证书后,进到证书路径,执行下面语句// openssl x509 -in 你的证书.crt -out 你的证书.cer -outform der这样你就可以得到c

1456 Supermarket 解题报告_suikay的博客-程序员秘密

  很水的一道题,但是居然wa了两次。下次要注意了:以bool为返回值的函数不一定默认返回true #include#include#include#define N 10110using namespace std;typedef struct Product{ int w; int dl; bool operator()(Product a,Product

推荐文章

热门文章

相关标签