Сервис также убивается всякий раз, когда приложение убивается в пироге Android - PullRequest
1 голос
/ 08 июля 2019

Я изучаю программирование на Android, создавая приложение для Android.Но всякий раз, когда я убиваю, служба приложений также убивается.Я использую JobIntentService.Чтобы приложение работало в фоновом режиме.

JobIntentService Class

public class BackGroundDistanceCalculate extends JobIntentService {

    final public static String TAG = "BackGroundDistance";

    static void enqueueWork(Context context, Intent job) {
        enqueueWork(context, BackGroundDistanceCalculate.class, 1, job);
    }

    @Override
    public void onCreate() {
        super.onCreate();
        Log.d(TAG, "Service Start");
    }

    @Override
    protected void onHandleWork(@NonNull Intent intent) {
        Log.d(TAG, "Execution Started");

        int i=0;

        for(i=0; i<1000; i++) {
            SystemClock.sleep(1000);
        }
    }

    @Override
    public boolean onStopCurrentWork() {
        Log.d(TAG,"Now It's Stopped");
        return super.onStopCurrentWork();
    }

    @Override
    public void onDestroy() {
        Log.d(TAG,"Now It's Destroyed");
        super.onDestroy();
    }
}

MainActivity

Intent backCheck = new Intent(MapsActivity.this, BackGroundDistanceCalculate.class);
BackGroundDistanceCalculate.enqueueWork(this, backCheck);

Создано этонамерение запустить Activity в onCreateMethod

Манифест

<uses-permission android:name="android.permission.WAKE_LOCK"/>
<service
    android:name=".BackGroundDistanceCalculate"
    android:permission="android.permission.BIND_JOB_SERVICE" />

Какие изменения я могу внести, чтобы служба работала успешно, даже когда приложение работаетубили?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 08 июля 2019

хорошо, вам нужно перенести свою службу на службу переднего плана или, по крайней мере, показать текущее уведомление, потому что начиная с приложений Android and Android 8.0 и более поздних версий невозможно запускать фоновую службу без уведомления пользователя. Тем не менее, если вы хотите работать без уведомления, одним из способов является миграцияВаш сервис для службы доступности Создать службу доступности .Вы можете обратиться к этой ссылке, если хотите ее создать.

0 голосов
/ 08 июля 2019

Запуск службы переднего плана с уведомлением об отказе

...