欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android开机自启动原理与实现案例(附源码)

程序员文章站 2023-11-04 14:36:28
原理: android系统通过应用程序自行在系统中登记注册事件(即intent)来响应系统产生的各类消息。 android系统为应用程序管理功能提供了大量的api,通过配置...
原理:
android系统通过应用程序自行在系统中登记注册事件(即intent)来响应系统产生的各类消息。 android系统为应用程序管理功能提供了大量的api,通过配置intent和permission来实现各种功能。
开机自启动是通过
<intent-filter>
<action android:name="android.intent.action.boot_completed"/>
<category android:name="android.intent.category.home" />
</intent-filter>
和权限<uses-permission android:name="android.permission.receive_boot_completed"></uses-permission>实现。

举例:
1.新建一个广播接收器的类:[java]
复制代码 代码如下:

/*
* $filename: bootbroadcastreceiver.java,v $
* $date: 2013-6-7 $
* copyright (c) zhenghaibo, inc. all rights reserved.
* this software is made by zhenghaibo.
*/
package njupt.zhb.startyouself;

import android.content.broadcastreceiver;
import android.content.context;
import android.content.intent;

/*
*@author: zhenghaibo
*web: http://blog.csdn.net/nuptboyzhb
*mail: zhb931706659@126.com
*2013-6-7 nanjing,njupt,china
*/
public class bootbroadcastreceiver extends broadcastreceiver {
static final string action_boot="android.intent.action.boot_completed";

@override
public void onreceive(context context, intent intent) {
if (intent.getaction().equals(action_boot)){
intent startintent=new intent(context,mainactivity.class); //接收到广播后,跳转到mainactivity
startintent.addflags(intent.flag_activity_new_task);
context.startactivity(startintent);
}

}

}

2.在manifest.xml文件中注册广播接收机,并且配置权限
注册广播接收机:
复制代码 代码如下:

<!-- 注册系统广播接收器 -->
<receiver android:name=".bootbroadcastreceiver" >
<intent-filter>
<action android:name="android.intent.action.boot_completed"/>
<category android:name="android.intent.category.home" />
</intent-filter>
</receiver>

添加权限:
复制代码 代码如下:

<uses-permission android:name="android.permission.receive_boot_completed"></uses-permission>

完成上述步骤后,启动一次程序,完成注册。等下次手机开机时,该软件即会自动启动。
扩展:不仅可以自动启动activity,也可以启动一个后台服务(service),只需要修改接收机中onreceive函数中的内容即可!

项目的源代码下载