Если вы спрашиваете, можете ли вы запускать какие-либо службы, как только они были загружены, это невозможно. Как вы можете ожидать, что ваш код будет запущен, когда приложение не будет запущено?
Edit:
Все, что вы можете сделать, чтобы запустить приложение после того, как устройство загрузится устанавливает приемник с намерением фильтра в манифесте.
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name=".blablaService"
android:enabled="true"/>
<receiver android:enabled="true" android:name=".BootUpReceiver"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
</application>
Вы также будете нуждаться в BroadcastReceiver
, поэтому добавить этот класс к источнику.
public class BootUpReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, MainActivity.class); //MyActivity can be anything which you want to start on bootup...
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
Я не знаю, будет ли это работать с обновлением устройства, но это все, что возможно. Это приведет к появлению приложения при загрузке устройства.
Я также задаюсь вопросом, действительно ли это необходимо сделать, как только устройство будет обновлено? Не могли бы вы просто проверить версию Android после загрузки приложения. Затем сохраните эту версию в sharedPreferences. В следующий раз, когда вы запустите, сравните текущую версию с той, которая хранится. Если это не то же самое, обновите пакеты. Это может быть альтернативное решение.
Возможный дубликат [Возможно ли запуск службы Android и трансляции, когда приложение не запускалось до] (http://stackoverflow.com/questions/32111094/is-it-possible-starting-android-service-and-broadcast -when-app-did-not-run-befor) –
этот вопрос принадлежал мне :). Это совсем другая ситуация. Я разместил ниже комментарий –