我的应用程序通过我编写的服务与服务器保持套接字连接,但一旦手机休眠(屏幕关闭几分钟后),我无法从沉睡的电话中获得典型的响应。当服务接收到网络事件时,通常会播放声音。
我的问题是,我是否需要一个wake_lock才能拥有我的应用程序功能。如果是这样的话,这个wake_lock对哪些组件有帮助?我对声音和插座连接很好奇。我只需要一个部分的wake_lock就能做到这一点吗?
至于套接字连接,如果它是在wifi下完成的,我还需要一个额外的wifi锁吗?套接字连接只是偶尔包含一次小事务,那么是否有一种方法可以使套接字连接不在wifi下(即使用户启用wifi),所以我不需要wifi锁定和浪费电源?还是只有在3g/4g下才能方便地进行套接字连接,还是可以从wifi优雅地退化为3g/4g?
谢谢!
发布于 2012-02-12 21:54:52
我需要一个wake_lock才能拥有我的应用程序功能吗?
一般来说,是的。如果您的网络连接是通过移动数据,如果您有一个打开的套接字到服务器,如果该服务器发送数据包给您,这将唤醒电话简短。然而,要做任何严肃的工作,您需要获得一个WakeLock。如果上面的任何斜体if语句都不是真的,那么只要您想要维护这个连接,就需要一个WakeLock。
因此,请考虑切换到C2DM进行推送通知。
,我只需要一个部分的wake_lock就能做到这一点吗?
部分WakeLock就足够了。
,如果它是在wifi下完成的,我需要额外的wifi锁吗?
是。
是否有一种方法可以使套接字连接不在wifi下(即使用户启用wifi),所以我不需要wifi锁定和浪费电源?
不怎么有意思。请求套接字连接。您所使用的任何网络在当时是活跃的。
还是只有在3g/4g下才能方便地进行套接字连接,还是可以从wifi优雅地退化为3g/4g?
如果WiFi关闭或其他情况下变得不可用,网络连接将优雅地退回到移动数据。然而,套接字连接没有。如果您在WiFi上有套接字连接,并且WiFi关闭了电源,那么您的套接字就需要在新的网络上重新打开。
https://stackoverflow.com/questions/9252587
复制相似问题