gpt4 book ai didi

java - runOnUiThread 在应用程序被销毁时停止工作

转载 作者:行者123 更新时间:2023-11-29 22:03:26 25 4
gpt4 key购买 nike

事情是这样的:我正在使用 runOnUiThread() 方法从另一个类接收到来自另一部手机的消息时更改该类的 ImageView 。我通过使用 mainclass.runOnUiThread(new Runnable...) 等来调用它。它在应用程序第一次运行时工作,但当我点击后退按钮退出应用程序,然后再次启动应用程序时, ImageView 不再更新。我获取的日志显示一切正常并且正在运行,但 ImageView 没有改变。我没有收到任何错误,当我运行应用程序时它也没有崩溃,它只是不更新​​ ImageView 。知道是什么原因造成的吗?

编辑*:这就是我实际用来更改不扩展 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 是 ImageView 。我认为我需要做的是找到一种方法在程序关闭时终止该线程(当我进入程序管理器时,它仍然具有可用的强制关闭按钮)。有什么办法吗?

Edit2*:所以我尝试了很多不同的方法来处理 UI 线程,它们都给我相同的结果:该程序在第一次运行时运行完美,但是当我点击后退按钮并关闭它时,重新打开它, ImageView 不再更新。如果我强行关闭该应用程序,它会再次正常工作,直到我关闭它并重新打开它。

最佳答案

尝试使用 View.post(...)相反。

关于java - runOnUiThread 在应用程序被销毁时停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11404404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com