0

我有一个活动和一个单独的服务器线程。服务器线程连接到服务器。在活动中,我有一个 LocationListener。onLocationChanged 正在向服务器线程发送数据,但我的数据不会到达服务器。

如果我直接从我的活动中发送数据,它工作正常。

有人能帮我吗?

4

2 回答 2

0

独立线程可能无法访问 UI 元素。您应该查看runOnUIThread文档。

于 2013-01-18T18:24:06.057 回答
0

不看代码就无法理解确切的问题..但根据我的理解,你可以试试这个 -

在服务器线程中使用处理程序从 UI 线程接收数据。

例如在您的 serverthread 可运行 -

@Override
public void run(){
       Looper.prepare();

       mHandler = new Handler() {
               public void handleMessage(Message msg) {
                   // Act on the message
               }
       };
       Looper.loop();
}

从 onLocationChanged() ,您可以将消息发布到处理程序。

 public void onLocationChanged(Location loc) {

 Message m = new Message();
 Bundle bundle = new Bundle();
 bundle.putString(DATA_KEY, "location specific data");
 m.setData(bundle);
 mHandler.sendMessage(m);

 }
于 2013-01-18T19:22:37.477 回答