Если вы просто хотите записать в журнал, то все будет нормально работать
Runnable mTask = new Runnable()
{
public void run()
{
Log.v("TAG", "Some verbose log message");
}
}
Необходимость использования synchronized
для объекта зависит от того, является ли объект потокобезопасным или нет.Если он не является поточно-ориентированным, вам нужно будет убедиться, что только один поток одновременно обращается к объекту с помощью синхронизированного блока.В вашем примере mBinder
не является потокобезопасным, поэтому для вызова метода связующего wait
необходимо убедиться, что вы единственный поток, обращающийся к нему.
A runnable
наиболеечасто используется для выполнения кода в другом потоке, поэтому длительные операции (такие как IO, но в данном случае просто ожидающие) не блокируют поток пользовательского интерфейса.