【原理】
当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" />
分享到:
相关推荐
本PPT讲述的是Android应用开发新路线:利用HTML5开发Android应用程序! 姓 名:杨丰盛 英文名字:yarin 网 名:半灌水 门 派:移动互联网 ^_^ 现任公司:云晖软件(成都)...个人主页:http://yarin.blog.51cto.com
14. **51CTO技术论坛**:[http://bbs.51cto.com/forum-134-1.html](http://bbs.51cto.com/forum-134-1.html) 提供IT技术交流,包括C语言的学习和实践经验。 15. **编程爱好者论坛**:...
首先,下载Java SE 1.6 Update 45的安装包,移到/usr/lib/java目录下,执行chmod a+x jdk-6u45-linux-amd64.bin和sudo ./jdk-6u45-linux-amd64.bin命令来安装。 然后,添加环境变量,编辑/etc/profile文件,添加...
除了上述综合性搜索引擎外,还有许多专注于特定领域的搜索网站,如51CTO、下吧软件下载网、CRSKY等,它们的搜索串格式分别为: - 51CTO:`http://www.51ct.cn/search.asp?keyword=%s&sType=ResName` - 下吧软件下载...
与标题一致的描叙,你值得拥有,确实很值。...http://android-zhang.iteye.com/blog/1836312 http://www.2cto.com/kf/201303/199088.html http://hi.baidu.com/xinshenbuning2/item/e94226de7517fe1ed78ed0b1 ...
梁肖51CTO博客:http://blog.51cto.com/liangxiaoAndroid业务组件库:http://blog.51cto.com/liangxiao/2146536APP框架多渠道打包和闭包,支持分包安装,UI独立,网络请求独立 此项目还有一些不完善的地方,可以留言...
7. **Weizhulin博客(http://weizhulin.blog.51cto.com/)**:在51CTO上,作者分享了Android相关的技术和实战经验。 8. **Mingkg21博客(http://mingkg21.javaeye.com/category/53645)**:虽然JavaEye已关闭,但其...
windows2008+Oracle11gR2故障转移群集配置完整版2011-01-0905:14:52标签:HYPERLINK...//blog.51cto.com/tagindex.php?keywo
这个压缩包集合了雨松MOMO在其博客中的各种教程和示例代码,涵盖了Android应用开发和游戏开发的核心知识点。 一、Android应用开发基础 在Android应用开发部分,你将学习到如何搭建Android开发环境,包括安装Android...
- [http://jeckyrain.blog.51cto.com/253059/58709](http://jeckyrain.blog.51cto.com/253059/58709) 通过以上步骤和注意事项,可以在Windows 2003环境下顺利完成Oracle 9i的安装,并确保其能够稳定运行。需要注意...
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 ...
- **下载链接**:[http://down.51cto.com/data/605626](http://down.51cto.com/data/605626) - **内容概览**:本书适合已经具备一定PHP基础知识的学习者。它深入介绍了PHP的高级特性,如面向对象编程、错误处理、...
wxappblog 微信小程序-小波说雨燕blog 被微信小程序刷屏, 利弊得失先不去想, 玩一玩才是真的. 动手把这个博客实现了一下,虽然很简陋, 不过应该足以理解...入门视频: http://edu.51cto.com/course/course_id-7242.html
在(移动联通电信)wap网络下,android webview控件无法...在此感谢这两位博主分享的博文:http://johnson008.blog.51cto.com/4000361/729387 http://hi.baidu.com/z57354658/blog/item/5902da1f318d67d5a78669d6.html
- **链接**: [http://down.51cto.com/zt/414](http://down.51cto.com/zt/414) - **下载量**: 800次 - **好评率**: 95.00% - **知识点**: 这是一套关于使用VC++进行软件开发的源码集合,非常适合希望深入了解...
- 地址:[http://developer.51cto.com/windows-embedded/](http://developer.51cto.com/windows-embedded/) - 51CTO 是一个知名的 IT 技术社区,其微软嵌入式开发技术与区汇集了大量的技术文章、教程和论坛讨论,...