Является ли метод IntentService onStartCommand(..) потокобезопасным?

У меня есть класс IntentService, который можно запускать из разных мест в сложном приложении — действия, фоновые потоки, другие службы. Я хотел бы сохранить счетчик того, сколько раз вызывалась служба. Я использую частную переменную int в своем классе IntentService, чтобы отслеживать это, я увеличиваю ее из моего метода onStartCommand(...).

Мне пришло в голову, что, поскольку метод onStartCommand(...) можно вызывать из различных асинхронных потоков, это может быть не потокобезопасным решением. Итак, вопрос в том, нужно ли мне обернуть доступ к этой переменной счетчика в синхронизированном блоке, или реализация IntentService onStartCommand(...) позаботится об этом за меня?

В качестве примечания: я знаю, что могу безопасно увеличивать переменную с onHandleIntent(...), но мне нужно подсчитывать фактические запросы, а не выполненные намерения.

6
задан András Szepesházi 24 June 2012 в 07:29
поделиться