Android - 如何在服务器中保持无限循环运行(屏幕关闭)?

时间:2014-04-07 17:21:23

标签: android sockets infinite-loop standby

我正在运行一个服务,它打开一个端口并接收消息。它通过打开一个端口并在无限循环中监听它来实现。当屏幕关闭几分钟后,我再也收不到任何消息了。

现在,我试图通过询问WakeLock来保持清醒。但这似乎不起作用,消耗大量电池。那么如何保持infite循环运行,也许我如何以最少的电池消耗实现它。

这不是真正的代码,但这是我尝试在待机模式下保持清醒的方式。

MyService{
...
public void startListening(){

new Thread(new Runnable(){

 public void run(){
 PowerManager mgr = (PowerManager)c.getSystemService(Context.POWER_SERVICE);
 final WakeLock wakeLock = mgr.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "ListeningLock");

 new Thread(new Runnable(){

 public void run(){
   wakeLock.acquire()
   someClass.infiniteListeningLoop();
   wakeLock.release();
 }

 }).start();

 }).start();

}

}

更新

WakeLock不是问题。我会定期发出循环仍在运行的通知以及它已经运行了多少次。所以问题似乎是套接字。我抓住了所有异常,但没有抛出任何异常。可能安卓关闭端口一段时间后没有收到任何东西?

0 个答案:

没有答案