Android4.0以後開機啟動service有點麻煩,但照網上的方法實現了,其實是在監聽開機廣播的時候在BroadcastReciever中啟動的service,
啟動service的代碼為:
public class SysReciever extends BroadcastReceiver{private String TAG = "MySysReciever";@Overridepublic void onReceive(Context context, Intent intent){if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {Log.e(TAG, "開機啟動了");Intent startServiceIntent = new Intent(context, SensorService.class);context.startService(startServiceIntent);Toast.makeText(context, "~ Startup Success ~", Toast.LENGTH_LONG).show();} else {Log.e(TAG, "Received unexpected intent " + intent.toString());}}}
AndroidManifest.xml註冊方法:
<receiver android:name=".SysReciever" android:enabled="true" android:exported="false" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
記得申明許可權。
這樣就可以實現在開機的時候啟動Service了。
參考:在BroadcastReceiver中啟動Service