1.首先开机启动后系统会发出一个Standard Broadcast Action,名字叫android.intent.action.BOOT_COMPLETED,这个Action只会发出一次。

2.构造一个IntentReceiver类,重构其抽象方法onReceiveIntent(Context context, Intent intent),在其中启动你想要启动的Service。

3.在AndroidManifest.xml中,首先加入<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>来获得BOOT_COMPLETED的使用许可,然后注册前面重构的IntentReceiver类,在其<intent-filter>中加入<action android:name="android.intent.action.BOOT_COMPLETED" /> ,以使其能捕捉到这个Action。

一个例子
xml:

Java代码
  1. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
  2. <receiver android:name=".OlympicsReceiver" android:label="@string/app_name">
  3. <intent-filter>
  4. <action android:name="android.intent.action.BOOT_COMPLETED" />
  5. <category android:name="android.intent.category.LAUNCHER" />
  6. </intent-filter>
  7. </receiver>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
<receiver android:name=".OlympicsReceiver" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</receiver>

java:

Java代码
  1. public class OlympicsReceiver extends IntentReceiver
  2. {
  3. /*要接收的intent源*/
  4. static final String ACTION = "android.intent.action.BOOT_COMPLETED";
  5. public void onReceiveIntent(Context context, Intent intent)
  6. {
  7. if (intent.getAction().equals(ACTION))
  8. {
  9. context.startService(new Intent(context,
  10. OlympicsService.class), null);//启动倒计时服务
  11. Toast.makeText(context, "OlympicsReminder service has started!", Toast.LENGTH_LONG).show();
  12. }
  13. }
  14. }
public class OlympicsReceiver extends IntentReceiver
{
/*要接收的intent源*/
static final String ACTION = "android.intent.action.BOOT_COMPLETED";
public void onReceiveIntent(Context context, Intent intent)
{
if (intent.getAction().equals(ACTION))
{
context.startService(new Intent(context,
OlympicsService.class), null);//启动倒计时服务
Toast.makeText(context, "OlympicsReminder service has started!", Toast.LENGTH_LONG).show();
}
}
}

注意:现在的IntentReceiver已经变为BroadcastReceiver,OnReceiveIntent为onReceive。所以java这边的代码为:

(也可以实现应用程序开机自动启动)
Java代码
  1. public class OlympicsReceiver extends BroadcastReceiver
  2. {
  3. /*要接收的intent源*/
  4. static final String ACTION = "android.intent.action.BOOT_COMPLETED";
  5. public void onReceive(Context context, Intent intent)
  6. {
  7. if (intent.getAction().equals(ACTION))
  8. {
  9. context.startService(new Intent(context,
  10. OlympicsService.class), null);//启动倒计时服务
  11. Toast.makeText(context, "OlympicsReminder service has started!", Toast.LENGTH_LONG).show();
  12. //这边可以添加开机自动启动的应用程序代码
  13. }
  14. }
  15. }

android上怎样让一个Service开机自动启动相关推荐

  1. Android开发之使用BroadcastReceiver实现开机自动启动(源代码分享)

    上一节已经介绍过BroadcastReceiver实现实时监听电量的功能,这节就来介绍一下如果实现开机自动启动的功能,这个比监听电量还简单不少 (1)在清单文件注册权限 <uses-permis ...

  2. linux java services_在 Linux 上创建第一个 Service Fabric Java 应用程序

    先决条件 开始之前,请安装 Service Fabric SDK.Azure CLI,并在 Linux 开发环境中设置开发群集. 如果使用 Mac OS X,则可使用 Vagrant 在虚拟机中设置 ...

  3. android启用其他应用程序,杀死Android上的另一个应用程序?

    我试图杀死我的另一个应用程序.但是这段代码无法杀死我的另一个应用程序.我知道杀死另一个应用程序是一个坏主意.但是我有一个学习的目的,并且我试图杀死人.我的代码部分: Button runningApp ...

  4. linux下开机自动启动,定时运行shell脚本

    Shell 脚本与window/dos 下的批处理相似,也就是用各类命令预先放入一个文件中,方便一次性执行的的一个程序文件,主要是方便管理员进行设置或者管理用. 一.shell脚本 在Linux下,我 ...

  5. android开机自动启动app,Android实现开机自动启动Service或app的方法

    本文实例讲述了Android实现开机自动启动Service或app的方法.分享给大家供大家参考,具体如下: 第一步:首先创建一个广播接收者,重构其抽象方法 onReceive(Context cont ...

  6. Android 开机自动启动服务

    在前面的文章中提到了remote service 的创建过程,现在我们要让它开机自动启动 1.在前面代码的基础上添加 RemoteServiceBootReceiver.java ,实现一个inten ...

  7. Android仿比心1对1直播源码开发,开机自动启动的实现

    在开发仿比心1对1直播源码过程中,常会要求仿比心1对1直播源码在系统开机时可以自动启动.这里,我将实现方法和遇到的一些问题总结于下文. 一. 实现 继承一个BroadcastReceiver用来处理B ...

  8. MTK(android init.rc) 写一个开机启动的服务

    在开机往往我们想要做一些初始化的操作,这时候可以使用init.rc文件来实现,当然书写一个开机启动的服务也需要规范的. 假设是C程序,则需要准备C程序的源码,在我的例程中是一个在开机完成(androi ...

  9. android设置自动开关机,Android开发之设置开机自动启动的几种方法

    Android开发之设置开机自动启动的几种方法 方法一: android:name=".AutoStartReceiver"为处理开机启动后所做操作的AutoStartReceiv ...

最新文章

  1. 157. Leetcode 674. 最长连续递增序列 (贪心算法-进阶题目)
  2. HTTPGet 与HTTPPost的区别
  3. 关于eclipse不编译项目的问题解决
  4. 好代码是管出来的——使用GitHub
  5. matlab绘制二元一次函数图像_【八上数学】 一次函数必考知识点(下)
  6. linux单网卡多拨Adsl,ROS单线多拨pppoe
  7. Spring Boot Redis
  8. 信息学奥赛一本通(1075:药房管理)
  9. 六步搞定RHEL5下的mysql镜像数据库配置
  10. Runtime之消息转发
  11. SpringBoot日志的相关知识
  12. java全局校验拦截器
  13. ida 安装findcrypto插件
  14. JAVA项目接入腾讯应用宝YSDK平台之QQ微信登录接入模式详解
  15. 文本预处理库spaCy的基本使用(快速入门)
  16. Prompt是什么意思?
  17. hdu5761 Rower Bo(物理题or瞎猜)
  18. 软考高项 - 计算公式汇总整理
  19. 【Python爬虫系列教程 41-100】猫眼电影字体加密破解
  20. linux安装VNC远程桌面环境

热门文章

  1. ADI Blackfin DSP处理器-BF533的开发详解18:用触摸屏的例程来理解中断(含源码)
  2. 你的英语目前处在什么样的水平?
  3. C#控件splitContainer用法
  4. python123练习题文库_python模拟登录百度文库后如何点击马上签到
  5. codeblock报错解决及正确安装
  6. PPG创业元老:美国战略只是烟雾弹 VC有苦难言
  7. 计算机键盘按键更改,键盘的按键如何更改
  8. 计算机考试题目学生成绩表,计算机等级考试EXCEL练习题-12学生成绩表2
  9. 数学分析 - 多元函数的极限和连续
  10. java网店系统_关于java网店系统的404页面 你知道多少