比如说,新闻客户端,IM聊天工具,关机开机之后,需要后台的服务启动,来收到最新的推送或者消息。或者这个service要做其他事情,总之要能够开机自启。每当服务启动的时候,我们启动一个通知栏,代码如下:
public class MyService extends Service{ @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); Notification notification = new Notification(R.drawable.ic_launcher, "myService", System.currentTimeMillis()); Intent notificationIntent = new Intent(this,MainActivity.class); PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0, notificationIntent, 0); notification.setLatestEventInfo(getApplicationContext(), "this is title ", "this is content ", pendingIntent); startForeground(1, notification); Log.e("myService", "onCreate"); } }界面很简答,start这个service就行,主要是设置权限:
<service android:name = ".MyService"> </service> <receiver android:name=".BootBroadcastReceiver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> <category android:name="android.intent.category.HOME" /> </intent-filter> </receiver>用一个广播来接收,开机的Intent,收到这个广播之后,直接启动service就行了。
public class BootBroadcastReceiver extends BroadcastReceiver { static final String action_boot="android.intent.action.BOOT_COMPLETED"; @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(action_boot)){ Intent intentService = new Intent(context, MyService.class); context.startService(intentService); } } }好了,代码已经完成了,除了主Activity,你自己去启动就可以了,记得要在安全中心里设置,这个应用开机自启哦。