Будет ли создание тоста внутри Runnable вызывать утечку памяти? - PullRequest
1 голос
/ 29 мая 2020

Я использую эту часть кода, которая встречается во многих местах, чтобы передать sh a Toast потоку пользовательского интерфейса из фонового потока:

new Handler(Looper.getMainLooper()).post(new Runnable() {
                    @Override
                    public void run() {
                        Toast.makeText(MainActivityFragment.this.getActivity(), "My Message"
                                Toast.LENGTH_SHORT).show();
                    }
                });

Он отлично работает. Однако, поскольку Runnable является анонимным внутренним классом с неявной ссылкой на Fragment или Activity , приведет ли это к утечке памяти? Или срок службы Toast настолько короток, что он не играет роли и скоро будет собран мусором?

1 Ответ

1 голос
/ 29 мая 2020

Или срок службы Toast настолько короток, что он не играет роли и скоро будет собран мусором?

Вы ответили на свой вопрос. Это потенциально "недолговечная" утечка памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...