所以这就是发生的事情:当该类从另一部手机接收消息时,我正在使用 runOnUiThread() 方法从另一个类更改图像视图。我通过使用 mainclass.runOnUiThread(new Runnable...) 等等来调用它。它在应用程序第一次运行时工作,但是当我点击后退按钮退出应用程序,然后再次启动应用程序时,图像视图不再更新。我记录的日志显示一切都很好并且正在运行,但图像视图没有改变。我没有收到任何错误,运行应用程序时它也不会崩溃,只是不会更新图像视图。知道可能是什么原因造成的吗?
编辑*:所以这就是我实际用来更改不扩展 Activity 的类中的 imageView
peerActivity.runOnUiThread(
new Runnable(){
@Override
public void run() {
Log.v("Thread@", "Thread is running");
Log.v("Thread@2", decodedImage.toString());
// TODO Auto-generated method stub
peerActivity.ivPhoto.setImageBitmap(decodedImage);
Log.v("Thread@3", "Past UI Change");
}
});
peerActivity 保存另一个类引用,而 ivPHoto 是图像视图。我认为我需要做的是在程序关闭时找到一种方法来终止该线程(当我进入程序管理器时,它仍然有“强制关闭”按钮可用)。有没有办法做到这一点?
Edit2 *:所以我尝试了一系列不同的方法来处理 UI 线程,它们都给了我相同的结果:程序在第一次运行时运行良好,但是当我点击后退按钮并关闭它并重新打开时它,图像视图不再更新。如果我强制关闭应用程序,它会再次正常工作,直到我关闭它并重新打开它。