2012-05-06 2 views
0

Я разрабатываю интерактивный виджет. Я хочу использовать статический java.util.concurrent.locks ReentrantLock, поэтому логика виджета вызывается только один раз за раз.BroadcastReceiver и ReentrantLock. Есть ли проблемы?

Но мой страх в том, что в очень редком состоянии, когда замок не освобождается, потому что он убит заранее из-за 10-секундного жизненного цикла.

Есть ли возражения с использованием ReentrantLock? Каков наилучший способ освободить замок?

Или, может быть, есть вариант Android для запуска только одного потока?

В настоящий момент я думаю о том, чтобы освободить замок в конце onReceive в блоке finally или в методе finalize (ouch).

ответ

0

Я хочу использовать статический java.util.concurrent.locks ReentrantLock, поэтому логика виджета вызывается только один раз за раз.

onUpdate()AppWidgetProvider вызывается в основной прикладной нити. По определению его можно назвать только «один раз за раз». Вам не нужен замок.

Смежные вопросы