Для начала вам нужно разрешение в манифесте:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Кроме того, в своем манифесте определите службу и прослушайте действие, завершенное при загрузке:
<service android:name=".MyService" android:label="My Service">
<intent-filter>
<action android:name="com.myapp.MyService" />
</intent-filter>
</service>
<receiver
android:name=".receiver.StartMyServiceAtBootReceiver"
android:enabled="true"
android:exported="true"
android:label="StartMyServiceAtBootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
Затем вам нужно определить получателя, который получит действие BOOT_COMPLETED и запустит ваш сервис.
public class StartMyServiceAtBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
Intent serviceIntent = new Intent("com.myapp.MySystemService");
context.startService(serviceIntent);
}
}
}
А теперь ваш сервис должен работать при запуске телефона.