Как описано в документации , он получает сообщение из пула сообщений вместо создания нового.(вам все равно нужно отправить сообщение обработчику):
Возвращает новое сообщение из глобального пула сообщений.Более эффективно, чем создание и выделение новых экземпляров.Полученное сообщение имеет свой обработчик, установленный на этот экземпляр (Message.target == this).Если вам не нужна эта возможность, просто вызовите Message.obtain ().
Я попытаюсь уточнить:
Вы отправляете сообщение обработчику.Сообщение добавляется в очередь потока обработчика и обрабатывается в исходном потоке.Вам нужно отправить ему сообщение, хотя в сообщении, которое оно использует, нет ничего конкретного (в соответствии с кодом вашего обработчика), поэтому вы просто отправляете пустое сообщение, но вместо выделения памяти для нового сообщения, оно берется изпул сообщений, который быстрее.
Надеюсь, это прояснит ситуацию.
Относительно того, как установить сообщение с помощью int:
Message m = new Message();
Bundle b = new Bundle();
b.putInt("what", 5); // for example
m.setData(b);
handler.sendMessage(m);