android – PARTIAL_WAKE_LOCK vs SCREEN_DIM_WAKE_LOCK下载主题

android – PARTIAL_WAKE_LOCK vs SCREEN_DIM_WAKE_LOCK下载主题,第1张

概述我有一个服务,产生一个下载线程,有时下载大文件.我意识到,一旦手机进入睡眠状态,下载线程就会显着减慢,然后停止. 一个明显的补救措施,一个唤醒锁.所以我认为可以获得一个partial_wake_lock,只是为了让cpu处理下载.但这不起作用,相同的行为,下载速度减慢,然后在屏幕关闭时停止. 然后我尝试了screen_dim_wake_lock.这一次,屏幕保持打开(变暗),下载保持全速,直到完成 我有一个服务,产生一个下载线程,有时下载大文件.我意识到,一旦手机进入睡眠状态,下载线程就会显着减慢,然后停止.

一个明显的补救措施,一个唤醒锁.所以我认为可以获得一个partial_wake_lock,只是为了让cpu处理下载.但这不起作用,相同的行为,下载速度减慢,然后在屏幕关闭时停止.

然后我尝试了screen_dim_wake_lock.这一次,屏幕保持打开(变暗),下载保持全速,直到完成,唤醒锁定,然后电话睡觉.

我的问题是,为什么我不能保持我的线程在持有partial_wake_lock时与screen_dim_wake_lock相同?关于这两者之间的区别是否存在一些无证的行为?是因为我不是在UI线程上运行吗?

编辑:

我添加了一个wifilock. wifi没有进入睡眠状态,但我的线程仍然死亡.如果某个其他进程唤醒系统,则下载将以正常速度继续,然后再次减速.如果我唤醒手机,它将以正常速度继续,而不是在屏幕熄灭时再次减速.似乎线程被系统推入后台.我想知道我是否可以阻止这种情况.

解决方法 我有一个与持续下载大型服务的服务有同样的问题
的URL.最好的方法是像你一样使用screen_dim_wake_lock并将你的服务带到
前景,如 here所述.

通过这种方式,屏幕始终处于打开状态,因此使用WI-FI界面也是如此.相反,如果您将手机暂停一段时间,屏幕将关闭,手机将进入睡眠模式,15分钟后WIFI也会关闭!

所以,另一种方法是使用partial_wake_lock(只有cpu打开)并更改手机的设置,以便WIFI始终打开(可能这看起来像你获得的WIFI_LOCK ..):

>从主屏幕转到系统或设置然后
>选择无线&网络
>选择WI-FI设置
>按菜单,然后选择高级
>按Wi-Fi睡眠政策并将其更改为从不

然后,即使在关闭屏幕的睡眠模式下,您的服务也能正常工作.这里唯一的问题是:

如果你松散WIFI连接一段时间,那么AndroID可能会因为它不活动而终止你的服务..但是如果你的手机总是连接到WIFI网络并且稳定性很好那么一切都会正常工作!

总结

以上是内存溢出为你收集整理的android – PARTIAL_WAKE_LOCK vs SCREEN_DIM_WAKE_LOCK下载主题全部内容,希望文章能够帮你解决android – PARTIAL_WAKE_LOCK vs SCREEN_DIM_WAKE_LOCK下载主题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1138108.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存