runOnUiThread是否会导致内存泄漏?

时间:2020-06-27 05:34:21

标签: android multithreading memory-leaks android-runonuithread

我不确定此代码是否会导致内存泄漏。

Thread thread = new Thread(new Runnable() {
                    @Override
                    public void run() {
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                mButton.setText("Hey!");
                            }
                        });
                    }
                });
                thread.start();

在线程中,我使用活动runOnUiThread()中的方法,并且在Runnable对象中保留对按钮的引用。 如果活动在线程完成之前被破坏,它将保留对活动的引用,因为我们将引用活动中的方法和可运行对象中的视图。
你能澄清一下我是否正确吗?如果是这样,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

是的,这将导致内存泄漏,如果您使用Thread.sleep()它将阻塞整个线程,则应使用协程而不是线程。