程序的开机自启动是一个非常有用的特性,在Android中,借助广播接收机制,这种特性非常容易实现,这里以开机启动一个Activity为例说明。

Java代码:

/** * @encoding UTF-8 */package org.flyingcat.os;import org.flyingcat.androidcodelib.MainActivity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;/** * @author Flyingcat * @create 2014-4-21 * @version 1.0 */public final class BootReceiver extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent arg1) {        Intent intent = new Intent(context, MainActivity.class);        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        context.startActivity(intent);    }}

注:要启动一个Activity,必须添加Intent.FLAG_ACTIVITY_NEW_TASK标志,否则会在执行时抛出异常。

AndroidManifest.xml中添加:

<receiver    android:name="org.flyingcat.os.BootReceiver">    <intent-filter >        <action android:name="android.intent.action.BOOT_COMPLETED"/>    </intent-filter></receiver>

此外,还需要注册权限:

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

如果不注册该项权限,则无法收到BOOT_COMPLETED广播,无法达到开机启动的效果。


更多相关文章

  1. Android官方入门文档[12]启动一个活动
  2. 2013.03.19(3)———android ActivityGroup的一些问题
  3. Android(安卓)Studio对于Java8特性的支持
  4. Android(安卓)Wifi模块分析(二)
  5. 布局技巧:使用ViewStub
  6. android调用市场给软件加评论
  7. Android(安卓)P SystemUi启动流程
  8. Android应用程序启动时发生AndroidRuntime : ClassNotFoundExcep
  9. android 8.1 开机壁纸下半部分黑屏2-3秒的问题解决

随机推荐

  1. 整理一下SQLSERVER的排序规则
  2. 如何在SQLSERVER中快速有条件删除海量数
  3. SQL Server全文索引服务
  4. 分页的存储过程
  5. Sql Server基本函数
  6. SQL连接查询介绍
  7. sql编程的几个常识
  8. ACCESS数据库的压缩,备份,还原,下载,删除
  9. 数据库存储过程分页显示
  10. 一个比较实用的大数据量分页存储过程