android - 应用程序空闲时的android网络问题
问题描述
我尝试使用带有改造的 AlarmManager。例如,如果我在 1 小时后设置闹钟,应用程序会在 5 分钟后关闭屏幕,当时间到时,闹钟会被唤醒,但我遇到了 UnknownHost 异常。当应用程序在前台时,它正在工作。我是否必须在后台服务中进行心跳以维护网络状态?我在wifi和powermanager中都尝试了wakelock添加wakelock权限,但也得到了同样的错误。
我试过了
@SuppressLint("InvalidWakeLockTag")
fun acquireWakeLock(context: Context){ //App이 Idle일때 Wake하는 함수
val wm = context.getSystemService(Context.WIFI_SERVICE) as WifiManager
val wifiLock = wm.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, "wifilock")
val pm = context.getSystemService(Context.POWER_SERVICE) as PowerManager
val wakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK
or PowerManager.ACQUIRE_CAUSES_WAKEUP
or PowerManager.ON_AFTER_RELEASE,"wakelock")
if(!wifiLock.isHeld) wifiLock.acquire()
if(!wakeLock.isHeld) wakeLock.acquire()
}
解决方案
推荐阅读
- javascript - 在 React.js 中映射 JSON 常量
- angular - 使用 ngModel 指令和 value 属性来更新表单
- node.js - NodeJS - Promise returns undefined object inside a redis pool await
- angular - 如何将动态值附加到 URL?
- python-3.x - 从python中的日期列表中添加日期
- python - TensorFlow 异常:模块 'tensorflow.tools.api.generator.api.math' 没有属性 'log'
- apache-flex - Flex mxmlc ant 任务给出 java.lang.OutOfMemoryError: Java heap space
- scala - 如何构建多个 Spark 数据帧并并行运行?
- microsoft-graph-api - 如何将 onedrive 文件共享给组织外的人员
- go - 如何使用gorm创建到mysql的ssl连接?