Можно ли перезапустить фоновую службу после того, как пользователь очистит приложение через любое стороннее приложение (очиститель CC или приложение Kill) в Android?

Можно ли перезапустить фоновую службу после того, как пользователь очистит приложение с помощью любого стороннего приложения (очиститель CC или приложение Kill) в Android для уровня API ниже 24?

Я попробую приведенный ниже код, но функция onDestroy не вызывается после очистки приложения с помощью этого приложения kill(https://play.google.com/store/apps/details?id=com.tafayor.killall&hl=en)

StickyService.java

public class StickyService extends Service
{
    private static final String TAG = "StickyService";


    @Override
    public IBinder onBind(Intent arg0) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.e(TAG, "onStartCommand");
        return START_STICKY;
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        sendBroadcast(new Intent("YouWillNeverKillMe"));
    }

}

RestartServiceReceiver.java

public class RestartServiceReceiver extends BroadcastReceiver
{

    private static final String TAG = "RestartServiceReceiver";

    @Override
    public void onReceive(Context context, Intent intent) {
        Log.e(TAG, "onReceive");
    context.startService(new Intent(context.getApplicationContext(), StickyService.class));

    }

}

Объявите компоненты в файле manifest:

<service android:name=".StickyService" >
</service>

<receiver android:name=".RestartServiceReceiver" >
    <intent-filter>
        <action android:name="YouWillNeverKillMe" >
        </action>
    </intent-filter>
</receiver>

Запустите StickyService в компоненте (т. е. в приложении, действии, фрагменте):

startService (новое намерение (это, StickyService.class));

OR

sendBroadcast (новое намерение (YouWillNeverKillMe));

Пожалуйста, помогите мне решить эту проблему.


person Vimalathithan A    schedule 10.08.2018    source источник


Ответы (1)


ОС Android Oreo и выше не позволяет Сервисам работать в фоновом режиме без основного приложения. Взгляните на этот вопрос Фоновая служба не работает в Oreo.

Кроме того, JobScheduler может оказаться полезным для достижения вашей цели.

person Oleg Sokolov    schedule 10.08.2018