`

【android】应用程序开机启动【转:http://billhoo.blog.51cto.com/2337751/761230】

 
阅读更多
【原理】
当Android系统完成BOOT阶段之后,就会发送一条名为 ACTION_BOOT_COMPLETED 的广播,我们便可在一个BroadcastReceiver中捕获这条广播,然后启动我们的Activity或者Service,当然要注意的是,我们的application必须具有捕获该广播的权限,下面请看具体步骤:
【步骤一】首先要有一个用于开机启动的Activity或者Service,这里以系统自己创建的最简单的Activity为例进行讲解。
package com.billhoo.study; 
 
import android.app.Activity; 
import android.os.Bundle; 
 
public class BootTestActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.main); 
    } 
} 


【步骤二】我们要编写一个BroadcastReceiver用以捕获ACTION_BOOT_COMPLETED这条广播,并在捕获之后启动我们要启动的Activity。


注意:必须在intent中添加Intent.FLAG_ACTIVITY_NEW_TASK标记,这就是我之前老是启动失败的原因。至于为什么,我还在研究SDK doc,明白了之后就回来补上。

package com.billhoo.study; 
 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
 
public class BootCompletedReceiver extends BroadcastReceiver { 
  @Override 
  public void onReceive(Context context, Intent intent) { 
    if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) 
    { 
      Intent newIntent = new Intent(context, BootTestActivity.class); 
      newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  //注意,必须添加这个标记,否则启动会失败 
      context.startActivity(newIntent);       
    }       
  } 
} 


【步骤三】在AndroidManifest.xml配置文件中注册我们的BroadcastReceiver

<receiver android:name=".BootCompletedReceiver"> 
    <intent-filter> 
        <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 

【步骤四】在AndroidManifest.xml配置文件中添加允许我们捕获该广播的权限
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
分享到:
评论
1 楼 di1984HIT 2015-12-25  
不错。。。。

相关推荐

    利用HTML5开发Android应用程序.ppt

    本PPT讲述的是Android应用开发新路线:利用HTML5开发Android应用程序! 姓 名:杨丰盛 英文名字:yarin 网 名:半灌水 门 派:移动互联网 ^_^ 现任公司:云晖软件(成都)...个人主页:http://yarin.blog.51cto.com

    20110610 DiscuzNT代码研究(一).pdf

    1) 本文对DiscuzNt3.6的大致结构作一些分析 2) 本文不保证所有的用语都是标准的,如有语误,或者打错字,欢迎指正,可发邮件给我:cfqlilei@139.com(务必说明你是谁哦,...51CTO: http://cfqlilei.blog.51cto.com/

    nginx+tomcat高可用、高性能jsp集群

    ./init_system.sh #此脚本参见http://kerry.blog.51cto.com/172631/555535 三、LVS+keeplived #关于LVS+keeplived的配置请参考我的另一篇博文《CentOS5.5环境下布署LVS+keepalived 》...

    集XMPP推送与聊天于一体的Openfire开发Android

    与标题一致的描叙,你值得拥有,确实很值。...http://android-zhang.iteye.com/blog/1836312 http://www.2cto.com/kf/201303/199088.html http://hi.baidu.com/xinshenbuning2/item/e94226de7517fe1ed78ed0b1 ...

    20110611 DiscuzNT代码研究(二)

    1) 本文分析将按照每个项目进行分析,每个项目建立文件大纲进行分析,同时会引申一些相关的内容知识。 本节分析文件: Discuz.Web\install\index.aspx ...51CTO: http://cfqlilei.blog.51cto.com/

    android手机安全卫士源码

    http://sw3458856.blog.51cto.com/6499064/1421507 这是本人的博客上面有详细介绍,

    开发一款任意APP-开发一款任意APP需要的类库以及多渠道打包命名框架 如需学习用法详见旧版本:https://github.com/geeklx/jiuzhidao_xinjiagou.zip

    梁肖51CTO博客:http://blog.51cto.com/liangxiaoAndroid业务组件库:http://blog.51cto.com/liangxiao/2146536APP框架多渠道打包和闭包,支持分包安装,UI独立,网络请求独立 此项目还有一些不完善的地方,可以留言...

    websphere commerce的使用即websphere commerce图解.pdf

    websphere commerce的使用即websphere commerce图解....http://sysapp.51cto.com/art/200602/21767.htm http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0503_mistry/0503_mistry.html

    windows_2008 Oracle_11g_R2_配置完整版.doc

    windows2008+Oracle11gR2故障转移群集配置完整版2011-01-0905:14:52标签:HYPERLINK...//blog.51cto.com/tagindex.php?keywo

    51CTO下载-雨松MOMO安卓博客课程.rar

    一直很关注雨松MOMO的博客,里面的代码包含应用开发和游戏开发,其中还有雨松各个博客的文档,是非常好的android学习资料

    微信小程序-微信小程序-小波说雨燕blog

    wxappblog 微信小程序-小波说雨燕blog 被微信小程序刷屏, 利弊得失先不去想, 玩一玩才是真的. 动手把这个博客实现了一下,虽然很简陋, 不过应该足以理解...入门视频: http://edu.51cto.com/course/course_id-7242.html

    android浏览器-真机环境下可自动获取不同运营商网络代理

    在(移动联通电信)wap网络下,android webview控件无法...在此感谢这两位博主分享的博文:http://johnson008.blog.51cto.com/4000361/729387 http://hi.baidu.com/z57354658/blog/item/5902da1f318d67d5a78669d6.html

    64位linux 编译c提示gnu/stubs-32.h:No such file or directory的解决方法

    64位linux提示gnu/stubs-32.h:No such file or directory的解决方法 这个问题是由于缺少32位兼容包,解决办法: ubuntu: sudo apt-get install libc6-dev-i386 CentOS:yum -y install glibc-devel.i686 ...

    《Linux运维趋势》(0-24期合辑)2013跨年礼包

    各位朋友大家好!年关将近,一年的劳碌奔波总算到头儿了,可以好好放松放松。在这里预祝大家新年快乐!其次,《Linux运维趋势》2013年1月号跳票了,在...往期《Linux运维趋势》下载汇总页:http://down.51cto.com/zt/71

    shell从入门到精通pdf

    博客 http://lizhenliang.blog.51cto.com GitHub https://github.com/lizhenliang/Shell-Python-Document QQ 技术群 323779636(Shell/Python 运维开发群) 说明 本文档均为个人经验总结,转发请保留出处,...

    超级启动盘制作方法

    五步制作超级启动盘 ...不知道怎么弄的欢迎参考超级启动盘制作视频教程http://i.youku.com/u/UNDM2OTQyMjM2或文库五步制作超级启动盘的详细教程http://down.51cto.com/data/518498,下载地址是这个...

    WPF编程宝典C#2010版【0分资源】

    WPF编程宝典C#2010版【0分...88个经典Android应用程序打包[源代码] http://download.csdn.net/detail/cleopard/5729535 java算法大全源码包-java算法大全,有近100多种常见算法的源代码,是学习JAVA算法的难得资料 ...

    windows 2003 server iisadmpwd 及配置说明

    http://blog.51cto.com/magic3/1754200 --------------------- 作者:weixin_44056589 来源:CSDN 原文:https://blog.csdn.net/weixin_44056589/article/details/87177490 版权声明:本文为博主原创文章,转载...

    润乾报表集成tomcat6

    http://hahapig.blog.51cto.com/171737/113639 http://wenku.baidu.com/view/febd84eb551810a6f52486b0.html 第三部:安装润乾和建立自己的web项目(例如项目有名字叫test) 一般都在myeclipse建立 第四步:部署test...

    XP的DNS服务器(BIND)配置.doc

    http://bbs.51cto.com/thread-656516-1.htmlXP的DNS服务器(BIND)配置环境:WindowsXP(Win7也测试通过)工具:1.HYPERLINK"ftp://ftp.bind....配置文件etc.zip如果本文发布地方带有附件,则已经包含以上2个文件1....

Global site tag (gtag.js) - Google Analytics