2013-03-04 122 views
3

这个运行时错误是什么意思?无法创建epoll实例。 errno = 24

我已经使用它,有人说,它属于计时器,其他人说它是一个套接字错误,更多的说,它属于图片。我有套接字和定时器(很多定时器),我不知道这些是什么原因造成的。它的工作时间超过一个小时,其他时间只需5分钟。有任何想法吗?

对这个错误的基本印象就足够了。如果我会后的所有代码,它可能发生,这个页面会多公里长(当然有点极端,但它是大量的代码。)

现在发现,它可能属于too many open files,但即时通讯在我的应用程序中不使用任何外部文件。

似乎是内存泄漏,属于这一部分:

public static Runnable connection() throws IOException { 
    Log.e("Communication", "connection"); 

    new Thread(new Runnable() { 
     public void run() { 
      Looper.prepare(); 
      try { 
       serv = new ServerSocket(port);                  sock = serv.accept(); 
       reader();                    } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    }).start(); 
    return null; 

回答

2

删除高于一切的代码的一部分后正常工作一次。删除了looper.prepare(),我的应用程序不再死亡。

0
public static void sendJsonList(final List<String> jsonStrlist, 
     final String resturl) { 
    Thread t = new Thread() { 
     public void run() { 
      Looper.prepare(); 
      /* Your HTTP clients code */ 
      try { 
       for (String jsonStr : jsonStrlist) { 
        /* Loop logic */ 
        response = client.execute(post); 
        if (response != null) { 
         /*reponse handler logic */ 
        } 
       } 

      } catch (Exception e) { 
       e.printStackTrace(); 
      } 

      Looper.loop(); 
     } 
    }; 

    t.start(); 
}