在Android中杀死应用程序时检测网络状态并从后台上传视频数据(API 28)

问题描述 投票:1回答:1

我需要将数据记录从本地数据库上传到服务器,该服务器还包括一个大小约为30 MB的视频文件。即使应用程序被杀,当网络可用时,也会发生上面的上传。现在,为了检测网络变化,在Android N及以上版本中,不推荐使用CONNECTIVITY_CHANGE和CONNECTIVITY_ACTION,因此广播接收器无用。另外,在API 28(Pie)中不推荐使用CONNECTIVITY_ACTION。

许多答案建议使用JobSchedular进行此类任务,但它对较小的上传很有用。

提到这个:qazxsw poi

WorkManager Detect CONNECTIVITY CHANGE in Android 7 and above when app is killed/in background

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

android file-upload broadcastreceiver android-jobscheduler android-workmanager
1个回答
2
投票

https://developer.android.com/topic/libraries/architecture/workmanager.htmlJobScheduler超时10分钟。如果上传时间超过此时间,那么您必须使用前台服务!

考虑到设备的有限资源,从Android 8.0开始,Google已经采取了一些严格措施来管理应用程序的后台任务。对于任何长时间运行的任务,应用程序必须使用Foreground WorkManager,以便用户始终了解它。

因此,在使用ServiceWorkManager安排任务后,您可以启动前景JobScheduler,您可以在其中执行上传视频的过程。 (Service

在你的reference你可以使用Service来监听网络连接。 (ConnectivityManager.registerNetworkCallback

© www.soinside.com 2019 - 2024. All rights reserved.