Сделать сетевой запрос после того, как пользователь убил приложение - PullRequest
0 голосов
/ 16 марта 2020

Как я могу сделать сетевой запрос после того, как пользователь удалит приложение из недавнего? Похоже, android не разрешает доступ к сети после завершения процесса приложения. Есть ли способ все еще сделать это?

Я хотел бы управлять состоянием пользователя в сети, когда запуск приложения делает его онлайн, а когда приложение полностью убивается, он отключается. Это делается путем отправки запросов в мой API.

Ответы [ 2 ]

1 голос
/ 16 марта 2020

Это довольно просто. Вы можете написать служебный компонент Android, который переопределяет метод onTaskRemoved (), который будет запускаться всякий раз, когда приложение удаляется путем считывания с рекантов. Таким образом, вы можете попробовать это решение и убедиться, что оно соответствует вашим требованиям. Это решит вашу проблему вызывающе.

0 голосов
/ 16 марта 2020

Вы можете создать службу, которая прослушивает приложение, уничтожающее

class MyService: Service() {


        override onBind(intent:Intent):IBinder {
            return null
        }

        override onStartCommand(intent:Intent, flags:Int, startId:Int):Int {
            return START_NOT_STICKY
        }

        override onDestroy() {
            super.onDestroy()
        }

        override onTaskRemoved(rootIntent:Intent) {
            // this will be called when Your when the application is destroyed or killed
            // launch your Network request here
        }
}

, и определить эту службу в файле манифеста:

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    ...>

    ...

    <application
        android:name=".MyApplication">
        ...
        <service android:name=".MyService" android:stopWithTask="false"/>

    </application>
</manifest>

, а затем запустить ее в своем приложении

class MyApplication: Application{

        override onCreate(){
            super.onCreate()
            val intent = Intent(this, MyService::java.class)
            startService(intent)
        }
}

проверить это поток .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...