1.AndroidMainfest.xml 配置:接收开机广播
<receiver android:name="BootBroadcastReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"></action> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </receiver>
2.BootBroadcastReceiver
public class BootBroadcastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { Log.e("TAG", "开机自动服务自动启动....."); //后边的XXX.class就是要启动的服务 Intent serviceIntent = new Intent(context, MyGpsService.class); context.startService(serviceIntent); } }
3. MyGpsService
protected void showNotification() { CharSequence from = "IM"; CharSequence message = "IM start up"; Intent intent = new Intent(); ComponentName componentName = new ComponentName("com.lixueli", "com.lixueli.Test"); intent.setComponent(componentName); intent.setAction("android.intent.action.MAIN"); intent.addCategory("android.intent.category.LAUNCHER"); intent.addFlags(Notification.FLAG_ONGOING_EVENT); // The PendingIntent to launch our activity if the user selects this notification PendingIntent contentIntent = PendingIntent.getActivity(this, 0, intent, 0); // construct the Notification object. Notification notif = new Notification(R.drawable.ic_launcher, "IMM Still run background!", System.currentTimeMillis()); notif.flags = Notification.FLAG_ONGOING_EVENT ; notif.setLatestEventInfo(this, from, message, contentIntent); // look up the notification manager service NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); nm.notify(R.string.app_name, notif); }