Я использую объект handler
для продолжения работы с пользовательским интерфейсом после завершения трудоемкой задачи в отдельном потоке. Была проблема с вышеупомянутым предупреждением Lint, и мой подход был следующим.
[ Образец объекта обработчика, тип 1 ] ->
Handler responseHandler = new Handler()
{
@Override
public void handleMessage(Message msg)
{
super.handleMessage(msg);
Toast.makeText(MainActivity.this, "Finished the long running task in seperate thread...", Toast.LENGTH_LONG).show();
}
};
[ Образец объекта обработчика, тип 2 ] ->
Handler responseHandler = new Handler(new Handler.Callback()
{
@Override
public boolean handleMessage(Message msg)
{
Toast.makeText(MainActivity.this, "Finished long running task in a seperate thread...", Toast.LENGTH_LONG).show();
return false; // RETURN VALUE ????
}
});
В отдельном потоке (кроме пользовательского интерфейса), когда выполняется трудоемкая задача, он выполняет следующую строку, чтобы вернуть управление потоку пользовательского интерфейса (в основном, объекту обработчика).
responseHandler.sendEmptyMessage(0);
Программа отлично работает с обоими типами объектов-обработчиков, но с 1-м типом я получаю предупреждение Lint о том, что Этот класс Handler должен быть статическим, иначе могут возникнуть утечки.
Поэтому я начал использовать второй тип объекта обработчика, чтобы избежать предупреждения Lint, но проблема в том, что я не уверен в значении возвращаемого значения (true/false) вторым способом. а также он работает с любым. Я так много искал это в Google, но не получил точного ответа, объясняющего это возвращаемое значение.
Да, я видел, что этот вопрос задавался во многих местах в stackoverflow, в основном в связи с предупреждением Lint, но мой вопрос в основном касается типа возвращаемого значения вторым способом и получения подтверждения, что все в порядке, как я решаю проблему, используя второй тип обработчика Obj.
Вопросы ->
1). Кто-нибудь знает, что именно означает это значение return (true/false)?
2). Правильно ли я сделал, чтобы избавиться от предупреждения о ворсе?
Спасибо...