使用BroadcastReceiver实现开机自动运行的Service

为了让Service随应用系统启动自动运行,可以让BroadcastReceiver监听Action为ACTION_BOOT_COMPLETED常量的Intent,然后在BroadcastReceiver中启动特定的Service即可。

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.sax.StartElementListener;

public class LaunchReceiver extends BroadcastReceiver{

  @Override
  public void onReceive(Context context, Intent intent) {
  Intent tIntent = new Intent(context, LaunchService.class);
    //启动指定Service
    context.startService(tIntent);
  }

}

实现自动运行的关键是要让LaunchReceiver监听系统开机发出的广播,因此需要在AndroidManifest.xml文件中采用如下代码配置该BroadcastReceiver:

<!-- 定义一个BroadcastReceiver,监听系统开机广播 -->
<receiver android:name=".LaunchReceiver">
  <intent-filter >
    <action android:name="android.intent.action.BOOT_COMPLETED"/>
  </intent-filter>
</receiver>

除此之外,为了让程序能访问系统开机事件,还需要为应用程序增加权限:

<!-- 授予应用程序访问系统开机事件的权限 -->
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

至于程序中用到的LaunchService,则可以是用户开发的Service,既可是监听用户来电的Service,也可以是监听用户短信、拦截黑名单电话等的Service,

时间: 2024-11-07 20:33:21

使用BroadcastReceiver实现开机自动运行的Service的相关文章

Android开机自动运行APP——BroadcastReceiver

前言: 有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台service.怎样实现开机自动运行的应用?在撰写本文时,联想到高焕堂先生以"Don't call me, I'll call you back!"总结Android框架,真是说到点子上了.理解这句话的含义,许多有关Android平台上实现某种功能的问题,都能迎刃而解. 使用场景: 手机开机后,自动运行程序. {只是最近本人在做万达大歌星点餐系统,需要用到系统启动直接启动App避免服务员玩别的app才研究的,

Android---让你的APK程序开机自动运行(转)

转自: http://blog.sina.com.cn/s/blog_72f6e45701014l6t.html 有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台service.怎样实现开机自动运行的应用?在撰写本文时,联想到高焕堂先生以“Don't call me, I'll call you back!”总结Android框架,真是说到点子上了.理解这句话的含义,许多有关Android平台上实现某种功能的问题,都能迎刃而解. 使用场景:手机开机后,自动运行程序,在屏幕上

Android实现开机自动运行程序

有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台service.怎样实现开机自动运行的应用?在撰写本文时,联想到高焕堂先生以“Don't call me, I'll call you back!”总结Android框架,真是说到点子上了.理解这句话的含义,许多有关Android平台上实现某种功能的问题,都能迎刃而解. 使用场景:手机开机后,自动运行程序,在屏幕上显示"Hello. Istarted!"字样. 背景知识:当Android启动时,会发出一个系统广播,内

[VC]VC实现开机自动运行程序

有时候,我们需要在计算机启动的时候就启动某些程序,不要人干预.这里,提供一种让程序开机自动运行的方法.见下面代码: BOOL CXXX::SetAutoRun(CString strPath) { CString str; HKEY hRegKey; BOOL bResult; str=_T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"); if(RegOpenKey(HKEY_LOCAL_MACHINE, str, &

Windows 开机自动运行

一.启动菜单中 二.开始->运行->msconfig 启动选项卡 三.开始->运行->regedit HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\ Windows\ CurrentVersion\Run 四.开始->运行->services.msc 设置为自动 五.开机批处理 例如: 开机启动Windows Time 服务 1. 编写批处理文件 @echo off net stop w32time net start w32time

WPF 设置程序开机自动运行(+注册表项)

#region 设置程序开机自动运行(+注册表项) RegistryKey rgkRun = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true); if (rgkRun == null) { rgkRun = Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\Cur

/etc/rc.local 与 /etc/init.d Linux 开机自动运行程序

1. /etc/rc.local 这是使用者自订开机启动程序,把需要开机自动运行的程序写在这个脚本里 --------引用---------------------- 在完成 run level 3 的服务启动后,如果我还有其他的动作想要完成时,举例来说, 我还想要寄一封 mail 给某个系统管理帐号,通知他,系统刚刚重新开机完毕,那么, 是否应该要制作一个 shell script 放置在 /etc/rc.d/init.d/ 里面,然后再以连结方式连结到 /etc/rc.d/rc3.d/ 里面

QT 设置应用程序开机自动运行

[cpp] view plain copy void Widget::Readregedit() { QString path; QDir dir; path=dir.currentPath();//在QtCreator中点击运行的话地址是工程地址,想要获得应用地址就点击文档中的应用程序(.exe文件) QString sApp = path + "/RemoveFiles.exe";//我的程序名称 sApp.replace("/","\\")

C#.NET Form设置/取消开机自动运行,判断程序是否已经设置成开机自动启动(转载)

#region//开机自动运行        private void CB_Auto_CheckedChanged(object sender, EventArgs e)        {//CB_Auto是一个Checkbox,IsAutoRun 是个布尔变量,用于控制是否开机运行            if (CB_Auto.Checked == true) IsAutoRun = true;            else IsAutoRun = false;            tr