软件环境:Windows 7
开发工具:Eclipse\ADT\SDK
模拟器:SDK2.2
-------------------------------------------------------------------------------------------------------------------------------------------------------------
继承自Service的MyService类
MyService:
public class MyService extends Service {
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
System.out.println("--->>>Create service!");
}
}
继承自BroadCastReceiver的MyBroadcastReceiver类
MyBroadcastReceiver.java:
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
intent.setClass(context, MyService.class);
//启动Service
context.startService(intent);
}
}
最后要在AndroidManifest.xml中注册receiver和service(很重要!):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="jack.bootservice"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="4" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<service android:name=".MyService"></service>
</application>
</manifest>
然后run android app,
Done !之后,重启模拟器
启动完成后,打开Logcat查看Systemout标签下的打印:
查看打印,输出为"--->>>Create service!"与之前程序中输出一致,查看系统中正在运行的服务,可以看到
我们之前的MyService正在运行中,说明开机启动Service成功!