小编kra*_*iec的帖子

java.net.BindException:绑定失败:EADDRINUSE(地址已在使用中)

我有一个服务,它启动Thread来对socket执行一些操作.代码如下:

 public class ServerRunnable implements Runnable {
    @Override
    public void run() {
        ServerSocket serverSocket = null;
        try {
            serverSocket = new ServerSocket();
            serverSocket.setReuseAddress(true);
            serverSocket.bind(new InetSocketAddress(ProtocolConstants.USB_SERVER_PORT));
        while (true) {
            Socket client = serverSocket.accept();
            // some code
        } catch (Exception e) {
            Log.e("Exception while listening on socket.", e);
        } finally {
            if (serverSocket != null) {
                try {
                    serverSocket.close();
                } catch (IOException e) {
                    Log.e(e);
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

当我第一次开始服务时,一切都很好,但是我必须使用stopService方法停止它.当我再次启动它时会返回以下异常:

java.net.BindException: bind failed: EADDRINUSE (Address already in use)
Run Code Online (Sandbox Code Playgroud)

另外我ServerSocket在 …

sockets port networking android

8
推荐指数
1
解决办法
4068
查看次数

将可聚焦视图添加到窗口管理器而不会丢失对后台的响应

我有以下问题:

我想创建一个工具栏,通过向窗口管理器添加视图来设置设备(TV)的常规设置.我的工具栏在屏幕底部可见,它是当前所选应用程序的叠加层.它有以下参数/标志:

  • WindowManager.LayoutParams.TYPE_SYSTEM_ALERT - WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH - WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE - WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL -PixelFormat.TRANSLUCENT

当我点击工具栏时它工作正常.当我点击背景时,工具栏仍处于前台,后台应用程序正常工作.

当我ListView从工具栏填充时,问题就开始了.有了这些参数,onClickonSelectItem听众不工作对ListView.当我删除时FLAG_NOT_FOCUSABLE,听众开始工作,但我不能再使用后台应用程序了.我必须关闭我的工具栏才能专注于背景.

您是否有任何想法,如何使两者ListView和后台应用程序响应?

提前谢谢,每个答案/

android android-windowmanager

5
推荐指数
1
解决办法
924
查看次数