我正在尝试制作一个 java tcp 服务器,它将向所有连接的 android 设备发送图像。
然后设备应将此图像设置为背景。我知道如何将图像从 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();
}
这是我在 mainactivity 中用来更新 UI 的步骤,但是应用程序不会更新并且它会崩溃。我认为线程过度加载内存并导致应用程序崩溃。
知道发生了什么吗?或更好的实施方式。