【问题标题】:Android WifiDirect open socket connection in activityAndroid WifiDirect 在活动中打开套接字连接
【发布时间】:2017-05-27 23:11:04
【问题描述】:

我想用 WifiDirect 传输数据。

所以我用它连接了两台设备,并在一台设备上打开了一个 SeverSocket。 当我想通过单击活动中的按钮从其他设备连接到此 ServerSocket 时(我用组所有者的 ip 打开一个套接字,服务器)我得到:“无法打开套接字连接”。

当我打开一个 IntentService 并在那里执行代码而不是在活动中执行 buttenClicked 方法中的代码时,它可以完美运行。

为什么不能在Activity中打开Socket,而在IntentService中?

【问题讨论】:

    标签: android wifi-direct


    【解决方案1】:

    Android 不允许您在 ui 线程上运行长时间运行的任务。您的按钮单击在 ui 线程上运行,而意图服务在单独的线程上运行,因此 serversocket 可以等到客户端连接但在ui 线程无法运行。

    因此,对于未来的应用程序,每当您有可能长时间暂停线程的任务时,请使用 intentservice 或 asynctask 或 java 的普通线程类在不同的线程上执行它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-07
      • 1970-01-01
      • 2018-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多