gpt4 book ai didi

java - 套接字连接需要android应用程序锁吗?

转载 作者:行者123 更新时间:2023-12-01 15:33:31 24 4
gpt4 key购买 nike

我的应用程序通过我编码的服务与服务器保持套接字连接,但是一旦手机 hibernate (屏幕关闭后几分钟),我无法从 hibernate 的手机获得典型的响应。当服务接收到网络事件时,通常会播放声音。

我的问题是,我是否需要wake_lock才能拥有我的应用程序功能。如果是这样,这个wake_lock对哪些组件有帮助?我很好奇声音和 socket 连接。我可以仅使用部分唤醒锁来做到这一点吗?

关于socket连接,如果是在wifi下进行的话,是否需要额外加个wifi锁?套接字连接仅包含一次小事务,那么有没有一种方法可以让套接字连接不在wifi下(即使用户启用了wifi),这样我就不必锁定wifi并浪费电力?或者套接字连接是否只能在 3g/4g 下方便地完成,或者可以从 wifi 优雅地退化到 3g/4g?

谢谢!

最佳答案

do I need a wake_lock to be able to have my app function

一般来说,是的。 如果您的网络连接是通过移动数据进行的,并且如果您有一个到服务器的开放套接字,并且如果该服务器向您发送数据包,那么短暂唤醒手机。然而,要完成任何严肃的工作,您需要获取一个WakeLock。如果上面的任何斜体 if 语句不成立,那么只要您尝试维持此连接,就需要 WakeLock

因此,请考虑切换到 C2DM 来发送通知。

Will I be able to do this with only a partial wake_lock?

部分WakeLock应该足够了。

will I need an additional wifi lock if it is done under wifi?

是的。

is there a way that I can have the socket connection not under wifi (even if the user enabled wifi), so I don't have to wifi lock and waste power?

不是真的。您请求套接字连接。您可以使用当时处于 Activity 状态的任何网络。

or are socket connection conveniently done only under 3g/4g or can gracefully degenerate from wifi to 3g/4g?

如果 WiFi 断电或以其他方式变得不可用,网络连接会优雅地恢复为移动数据。然而,套接字连接则不然。如果您在 WiFi 上有套接字连接,并且 WiFi 断电,则您的套接字已关闭,您需要在新网络上重新打开它。

关于java - 套接字连接需要android应用程序锁吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9252587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com