我有一个服务,它启动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在 …
我有以下问题:
我想创建一个工具栏,通过向窗口管理器添加视图来设置设备(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从工具栏填充时,问题就开始了.有了这些参数,onClick和onSelectItem听众不工作对ListView.当我删除时FLAG_NOT_FOCUSABLE,听众开始工作,但我不能再使用后台应用程序了.我必须关闭我的工具栏才能专注于背景.
您是否有任何想法,如何使两者ListView和后台应用程序响应?
提前谢谢,每个答案/