0

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

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

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

谢谢!

4

1 回答 1

1

我需要一个唤醒锁才能拥有我的应用功能吗

一般来说,是的。如果您的网络连接是通过移动数据进行的,并且如果您有一个连接到服务器的开放套接字,并且如果该服务器向您发送数据包,则会短暂唤醒手机。但是,要进行任何认真的工作,您需要获得一个WakeLock. 如果上面的任何斜体if语句不正确,那么WakeLock只要您试图保持这种连接,您就需要 a。

因此,请考虑切换到 C2DM 进行推送通知。

我可以只用部分唤醒锁来做到这一点吗?

一个部分WakeLock就足够了。

如果在wifi下完成,我需要额外的wifi锁吗?

是的。

有没有办法让套接字连接不在wifi下(即使用户启用了wifi),所以我不必锁定wifi并浪费电力?

并不真地。您请求套接字连接。您使用当时处于活动状态的任何网络。

还是只能在 3g/4g 下方便地完成套接字连接,或者可以从 wifi 优雅地退化到 3g/4g?

如果 WiFi 断电或不可用,网络连接会优雅地回退到移动数据。但是,套接字连接没有。如果您在 WiFi 上有一个套接字连接,并且 WiFi 断电,则您的套接字已关闭,您需要在新网络上重新打开它。

于 2012-02-12T21:54:52.910 回答