2 xiaoxiaoaishang xiaoxiaoaishang 于 2012.10.23 11:43 提问

想要在启动android的时候启动一个服务

当一个device在android启动的时候我想要启动一个服务,但是我发现我实现不了

我已经在网上找了很久了,但是没有代码是可以用的。是我忘了什么么?这是我的代码。
Manifest

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

<receiver   android:name=".StartServiceAtBootReceiver"
  android:enabled="true" 
  android:exported="false"
  android:label="StartServiceAtBootReceiver">
  <intent-filter>
    <action android:name="android.intent.action._BOOT_COMPLETED"/>
   </intent-filter>
</receiver>
<service android:enabled="true" android:name="com.test.RunService"/>
Receiver OnReceive

public void onReceive(Context context, Intent intent)
{
  if("android.intent.action.BOOT_COMPLETED".equals(intent.getAction()))
  {
     Intent serviceLauncher = new Intent(context, RunService.class);
     context.startService(serviceLauncher);
     Log.v("TEST", "Service loaded at start");
  }
}

谢谢

2个回答

pby_bob
pby_bob   2012.10.23 12:42
已采纳

代码没错,LZ粗心了
注册中多了个“_“这样就是对的,
<action android:name="android.intent.action.BOOTCOMPLETED" />

xiaoxiaoaishang
xiaoxiaoaishang 啊!谢谢指出,我查了半天都没查出来
5 年多之前 回复
niangzhi
niangzhi   2012.10.23 13:37

pby_bob的答案没错,但是我想弄一个完整的答案,希望对以后再看到这个问题的人能有帮助。
在你的AndroidManifest.xml文件中,你需要下边这些:
1) 在你的 元素中:

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

2) 在你的元素(一定要给你的BroadcastReceiver用一个完全限定(或相对)的类名):

<receiver android:name="com.example.MyBroadcastReceiver">  
    <intent-filter>  
        <action android:name="android.intent.action.BOOT_COMPLETED" />  
    </intent-filter>  
</receiver>

(你不需要android:enabled, exported等等, android的默认值是正确的。)

在MyBroadcastReceiver.java里:

package com.example;

public class MyBroadcastreceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent startServiceIntent = new Intent(context, MyService.class);
        context.startService(startServiceIntent);
    }
}

最初的问题:

现在还不确定是否元素在元素里?
还不确定是否正确的给BroadcastReceiver指定了完全限定(或相对)的类名
在 中有个错误

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android:Service(二)——以绑定方式启动Service
关于Service的线程问题 上一篇说了Service的基本使用:Android:Service(一)——Service的基本使用,其中有一点没有提到的是:在service上运行的任务也是运行在主线程上的,所以不要以为开启了服务就可以在里面尽情地做一些耗时任务。不然的话也会导致ui卡顿~可以做这么一个实验,在Activity上输出当前线程的Id然后在Service上也输出当前线程的id,就会发现
Service+Notification
做项目时发现很多时候要用到服务+通知,今天我就简单的总结一下,方便他人也便利自己翻阅查看 启动型服务+通知 首先写启动型服务+通知  写一个启动型服务,注意注册 public class MyService extends Service {     @Override     public IBinder onBind(Intent intent) {         //
android实现app启动另一个app的service
android实现app启动另一个app的service首先我们先创建两个Android工程,active以及passiveactive app负责使用intent启动 passive app的service1.active app代码如下:public class MainActivity extends AppCompatActivity { Button button; @Ov
Android程序中启动另一个activity
首先,打开androidstudio,创建一个项目,将他命名为AndroidActivity。接着,打开res文件夹,找个layout文件夹中的activity_main.xml这个文件。 该文件是activity_main这个界面信息的配置文件,在这个文件中加入按钮配置信息。 其中wrap_content的意思是:该按钮的大小根据按钮内文字长度来定。 text的意思是:该按
android跨进程启动service
1,启动服务的客户端 MyLog.i(TAG,"启动服务"); String shopId = PreferencesUtil.getString(MainActivity.this, Constants.SHOPID_KEY); String userName = PreferencesUtil.getString(MainActivity.this, Constants.USERNAME_K
Linux Shell脚本编程
实验任务一:编写一个Shell过程完成如下功能(必须在脚本中使用函数):1、程序接受3个参数:$1、$2和$3,合并两个$1、$2文件为$3,并显示,三个文件均为文本文件。2、如果缺少$3,那么先报告缺少$3,然后将合并后的内容输出到mydoc.txt。如果有$3,就合并到$3。3、如果缺少$2、$3,那么先报告缺少$2、$3,只显示$1的内容。4、如果文件$1不存在,则提示缺少$1,要求重新运行程序。实验任务二:利用所学知识,实现如下目标:<br>某用户需要在每天晚上11点启动服务器的ftp服务,使得其他用户可以上传重要数据。而在每天凌晨3点就关闭ftp服务。在这个过程中要自动记录日志信息,每天是否成功启动ftp要体现在日志信息中,如果成功启动必须记录ftp的进程信息,如果没有启动,就记录错误信息。约定如下:日志文件为/tmp/ftplog。实验任务三:编写一个脚本,显示当天日期,查找给定的某用户是否在系统中工作。如果在系统中,就发一个问候给他。
Android如何配置init.rc中的开机启动进程(service)
开篇:为什么写这篇文章先说下我自己的情况,我是个普通的学生,之前在学校一直做Android应用开发,找实习的时候也一直想找相关的工作,来到现在这家公司以后,由于业务调整,被领导安排去做底层开发,本来我对底层的东西一无所知,加上其实并不感兴趣,其实一开始感觉还是很难的,不过刚刚工作,只有小孩子才在乎喜欢不喜欢,成年人只在乎是否有利。我本着技多不压身的心态,开始了底层开发学习之旅,做Android底层...
一个APK里启动外部APK或者外部APK的一个服务
来自:http://blog.csdn.net/xuxinyl/article/details/6038934 Intent inte=new Intent(); ComponentName com=new ComponentName("com.kld","com.kld.LocSaveService"); inte.putExtra("notifylocsms",
Android——服务的基本用法之定义一个服务并进行启动与停止
在项目中定义一个服务,新建一个Service项目 New - Service - Service。public class MyService extends Service { public MyService() { } @Override public IBinder onBind(Intent intent) { // TODO: Retu...
在一个app中启动另外一个app的service
例如:appA要启动appB中的service 步骤一: appB中service的声明,如图 <service android:name="com.appb.BService" android:exported="true"//必须 android:permission="app.custom.permission">//三个属性缺一不可