用户最近刷过一个应用程序后,如何发出网络请求?在应用程序进程被杀死之后,android似乎不允许网络访问。有没有办法做到这一点?
我想管理用户在线状态,其中应用程序启动会使他在线,而当应用程序被完全杀死时,他会离线。这是通过向我的API发送请求来完成的。
答案 0 :(得分:1)
这很简单。您可以编写一个Android服务组件,该组件将覆盖一个名为onTaskRemoved()的方法,该方法将在每次通过重入页面删除应用程序时触发。因此,您可以尝试此解决方案,并查看它是否满足您的要求。这将彻底解决您的问题。
答案 1 :(得分:0)
您可以创建一个监听应用程序销毁的服务
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)
}
}
选中此thread。