我不确定此代码是否会导致内存泄漏。
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
mButton.setText("Hey!");
}
});
}
});
thread.start();
在线程中,我使用活动runOnUiThread()中的方法,并且在Runnable对象中保留对按钮的引用。
如果活动在线程完成之前被破坏,它将保留对活动的引用,因为我们将引用活动中的方法和可运行对象中的视图。
你能澄清一下我是否正确吗?如果是这样,我该如何解决这个问题?
答案 0 :(得分:0)
是的,这将导致内存泄漏,如果您使用Thread.sleep()它将阻塞整个线程,则应使用协程而不是线程。