首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当android pie中的app被杀时,检测网络状态并从后台上传视频数据(API 28)

问当android pie中的app被杀时,检测网络状态并从后台上传视频数据(API 28)
EN

Stack Overflow用户
提问于 2019-04-03 21:02:11
回答 1查看 713关注 0票数 2

我需要上传一个从本地数据库的数据记录到服务器,其中还包括一个视频文件,这可能是约30MB的大小。上面的上传发生在网络可用时,即使应用程序被终止也是如此。现在为了检测网络变化,在Android N和更高版本中,CONNECTIVITY_CHANGE和CONNECTIVITY_ACTION已被弃用,因此广播接收器没有用处。此外,在API28 (Pie)中也不推荐使用CONNECTIVITY_ACTION。

许多答案建议使用JobSchedular来完成这类任务,但它对于较小的上传是有用的。

参考:Detect CONNECTIVITY CHANGE in Android 7 and above when app is killed/in background

WorkManager https://developer.android.com/topic/libraries/architecture/workmanager.html

那么,当app被终止时,如何检测Pie(API 28)中的网络变化,并执行上述上传任务。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-03 23:03:42

JobScheduler或WorkManager的超时时间为10分钟。如果上传时间超过此时间,则必须使用前台服务!

考虑到设备的资源有限,从Android 8.0开始,谷歌在管理应用程序的后台任务方面采取了一些严格的措施。对于任何长时间运行的任务,应用程序必须使用前台Service,以便用户始终知道它。

因此,在使用WorkManager或JobScheduler调度任务后,您可以启动一个前台Service,在其中您可以执行视频上传过程。(reference)

在您的Service中,您可以使用ConnectivityManager.registerNetworkCallback侦听网络连接。(reference)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55495881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档