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

原理:
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函数中的内容即可!

项目的源代码下载

(0)

相关推荐

  • Android开机自启动服务的实现方法

    android实现开机自启动可能是移动操作系统中最简单的了,我们只需要监听一个开机启动的Broadcast(广播)即可.首先写一个Receiver(即广播监听器),继承BroadcastReceiver,如下所示: view source print? 复制代码 代码如下: public class BootReceiver extends BroadcastReceiver { private PendingIntent mAlarmSender; @Override public void

  • Android 个人理财工具一:项目概述与启动界面的实现

    从本文开始为大家制作一个Android个人理财工具,并把整个开发过程记录下来,与大家分享.   项目总体介绍 此Android个人理财工具的主要功能是,可以录入日常生活中的各类收入和支出明细,并且可以在每月底能够统计每月各类情况.给出收支关系饼图,月份之间的柱状图等报告. 下图是程序的流程图: 程序可能涉及到的技术: 1.多个视图的切换,参数的传递,intent的使用. 2.Grid 明细的体现. 3.sqlite数据的操作. 4.自绘view 来表现统计图. 先写这些.        启动界面

  • Android编程之简单启动画面实现方法

    本文实例讲述了Android简单启动画面实现方法.分享给大家供大家参考,具体如下: 每个Android应用程序启动之后都会出现一个Splash启动界面,显示产品LOGO.公司LOGO或者开发者信息.如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯燥的时间,提高用户体验. 1. splash.xml布局文件 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android&q

  • Android仿新浪微博启动界面或登陆界面(1)

    本文为大家分享了Android模仿新浪微博启动界面&登陆界面的具体实现代码,供大家参考,具体内容如下 启动界面 主要有两个功能: 1.加载启动动画 2.判断网络,有者直接进入登陆界面,否则去设置网络 代码较简单,主要采用AlphaAnimation()方法和动画监听器,使一张图片产生渐变动画.在动画启动的时候判断网络,动画结束时完成判断并进入登陆界面. /** * Created by D&LL on 2016/5/25. * 初始页面加载界面 */ public class Splash

  • Android简单实现启动画面的方法

    本文实例讲述了Android简单实现启动画面的方法.分享给大家供大家参考,具体如下: 核心代码: package com.demo.app; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; public class SplashActivity extends Activity { private final int S

  • Android编程实现启动界面的方法分析

    本文实例讲述了Android编程实现启动界面的方法.分享给大家供大家参考,具体如下: 最近在弄一个程序启动界面程序,在这里贴下代码.解释一下:后面Intent(qidong.this,"写想要跳转的Activity"); 效果图: 然后建立一个名字为qidon. Activity: import Android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os

  • Android笔记之:App应用之启动界面SplashActivity的使用

    当前比较成熟一点的应用基本上都会在进入应用之显示一个启动界面.这个启动界面或简单,或复杂,或简陋,或华丽,用意不同,风格也不同.下面来观摩几个流行的应用的启动界面. 1. 货比三家以腾讯qq,新浪weibo,UC浏览器,游戏神庙逃亡等7个应用为例,比比看:(我认为最精美的界面应该是qq2012,虽然只有一张图,基本的应用名称,版本,图标这些信息都有,但是看着舒服,觉得美.) 2. 元素启动界面的本意是以友好用户界面来掩饰后台缓冲加载,让用户用平和等待的心情进入正常应用界面.但是因为启动界面是放在

  • Android启动画面的实现方法

    本文实例讲述了Android启动画面的实现方法.分享给大家供大家参考.具体分析如下: 在应用程序中经常用到启动画面,会启动一个后台线程为主程序的运行准备资源. Android要实现启动画面可以这样做: 这是splash.xml布局文件的代码: 复制代码 代码如下: <LinearLayout   xmlns:android="http://schemas.android.com/apk/res/android"   android:layout_height="fill

  • 详解Android中App的启动界面Splash的编写方法

    一.Splash界面的作用 用来展现产品的Logo 应用程序初始化的操作 检查应用程序的版本 检查当前应用程序是否合法注册 二.界面的xml定义 写一个布局背景设置为产品的logo图片,再添加一个textview显示版本号. <TextView android:id="@+id/tv_splash_version" android:layout_width="wrap_content" android:layout_height="wrap_cont

  • Android中实现开机自动启动服务(service)实例

    最近在将 HevSocks5Client 移植到 Android 上了,在经过增加 signalfd 和 timerfd 相关的系统调用支持后,就可以直接使用 NDK 编译出 executable 了.直接的 native exectuable 在 Android 系统总还是不太方便用哦.还是做成一个 apk 吧,暂定只写一个 service 并开机自动启用,无 activity 的. Java 中调用 native 程序我选择使用 JNI 方式,直接在 JNI_OnLoad 方法中调用 pth

  • android开发教程之开机启动服务service示例

    个例子实现的功能是:1,安装程序后看的一个Activity程序界面,里面有个按钮,点击按钮就会启动一个Service服务,此时在设置程序管理里面会看的有个Activity和一个Service服务运行2,如果手机关机重启,会触发你的程序里面的Service服务,当然,手机启动后是看不到你的程序界面.好比手机里面自带的闹钟功能,手机重启看不到闹钟设置界面只是启动服务,时间到了,闹钟就好响铃提醒. 程序代码是: 首先要有一个用于开机启动的Activity,给你们的按钮设置OnClickListener

  • Android显式启动与隐式启动Activity的区别介绍

    前段时间立志坚持写博客,但是发现自己的积累的确不多,于是假期泡了泡图书馆,读了一些很有价值的文章.收获颇多,今天的文章分享为主,共同学习. 为什么要写显式启动与隐式启动Activity.这源于自己的一次面试,被Baidu工程师问道,但是后来觉得自己回答的不好,废话少说,进入正题. 如题,Android的Acitivity启动大致有两种方式:显式启动与隐式启动.下面分别介绍: A:显式启动 对于初学者来说,这个最常见,下面用代码来解释什么是显式启动. 复制代码 代码如下: Intent inten

  • Android开发基础之创建启动界面Splash Screen的方法

    本文实例讲述了Android开发基础之创建启动界面Splash Screen的方法.分享给大家供大家参考.具体如下: 启动界面Splash Screen在应用程序是很常用的,往往在启动界面中显示产品Logo.公司Logo或者开发者信息,如果应用程序启动时间比较长,那么启动界面就是一个很好的东西,可以让用户耐心等待这段枯燥的时间. Android 应用程序创建一个启动界面Splash Screen非常简单.比如创建一个工程MySample,主Acitity就叫MySample,创建另一个Activ

随机推荐