andorid service 在手机启动后自动启动,随着手机系统启动

文章标签: android,android-service
2014-11-26 13:23:16     人阅读    

 

      目前有个需求要在android 系统启动时启动一个service,我从网上找了很多的例子,全部都试过了,没有一个好用的.  下面是我的代码,我是不是漏掉了什么?

AndroidManifest.xml

<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:name="com.test.RunService"
 
    android:enabled="true" />


BroadcastReceiver 类代码

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");
 
    }
}
}

问题定位

整理了一个详细的步骤,你按下是否缺少其中一步骤.
1)在你的 <manifest> 中添加:

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

2)在你的 <application> 中添加 (确保使用了全名(路径) class BroadcastReceiver的类名):

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

</receiver>

 

核心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);
 
    }
}
}


从你的问题删刚看
 目前还不清楚  <receiver>元素是否在<application> 中
 不清楚是否正确的设置了 BroadcastReceiver 类的全名
 <intent-filter>中有一个错别字母


 


原文地址:http://www.itmmd.com/201411/222.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

android 给 ImageView圆角效果,ImageVIew实现圆角   上一篇
下一篇  如何把一个listview中选中的值展示到另外一个 activity中
精彩回复
我要追加问题,请求站长解决!
姓名:       

《程序员app》专门为程序员量身定做!