接続されているすべての Android デバイスにイメージを送信する Java tcp サーバーを作成しようとしています。
次に、デバイスはこの画像を背景として設定する必要があります。JavaサーバーからAndroidデバイスに画像を送信する方法を知っています。しかし、私はAndroidに着信ストリームを常にリッスンさせ、画像を取得するたびに背景として設定したいと考えています。
public void listenForIncomingImage() {
Thread InComImage = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
try {
inComImageBitmap = BitmapFactory.decodeStream(mySocket
.getInputStream());
MainActivity.setImage(inComImageBitmap, true);
Log.d("Bitmap", "Bitmap receviced and sent to method");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
});
InComImage.start();
}
これは Android 側で、画像を Mainactivity に送信します。
public void imageUpdate() {
new Thread(new Runnable() {
@Override
public void run() {
while (true) {
runOnUiThread(new Runnable() {
public void run() {
while(imageCheck = true)
myImage.setImageBitmap(finalImage);
imageCheck = false;
}
});
}
}
}).start();
}
これは UI を更新するためにメイン アクティビティで使用しているトレッドですが、アプリは更新されず、クラッシュします。スレッドがメモリをオーバーロードし、アプリがクラッシュする原因になっていると思います。
何が起こっているのですか?または実装のためのより良い方法。