私は活動と別のサーバースレッドを持っています。サーバースレッドはサーバーに接続しています。アクティビティには LocationListener があります。onLocationChanged はサーバースレッドにデータを送信していますが、私のデータはサーバーに届きません。
アクティビティから直接データを送信している場合、問題なく動作します。
誰かが私を助けることができますか?
私は活動と別のサーバースレッドを持っています。サーバースレッドはサーバーに接続しています。アクティビティには LocationListener があります。onLocationChanged はサーバースレッドにデータを送信していますが、私のデータはサーバーに届きません。
アクティビティから直接データを送信している場合、問題なく動作します。
誰かが私を助けることができますか?
コードを見ずに正確な問題を理解することはできません..しかし、私の理解によれば、これを試すことができます-
サーバースレッドでハンドラを使用して、UI スレッドからデータを受信します。
たとえば、サーバースレッド実行可能ファイルで-
@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);
}
独立したスレッドは UI 要素にアクセスできません。runOnUIThreadのドキュメントを参照してください。