0

クリック可能なウィジェットを開発しています。静的な java.util.concurrent.locks ReentrantLock を使用して、ウィジェット ロジックが一度に 1 回だけ呼び出されるようにします。

しかし、私の恐れは、10 秒のライフサイクル ウィンドウのためにロックが事前に殺されるため、非常にまれな状態でロックが解除されない可能性があることです。

ReentrantLock を使用することに異論はありますか? ロックを解除する最良の方法は何ですか?

または、シングルスレッドのみで実行する Android オプションはありますか?

現時点では、finally ブロックまたは finalize メソッド (痛い) で onReceive の最後にロックを解除することを考えています。

4

1 に答える 1

0

静的なjava.util.concurrent.locksReentrantLockを使用して、ウィジェットロジックが一度に1回だけ呼び出されるようにします。

onUpdate()AppWidgetProviderはメインアプリケーションスレッドで呼び出されます。定義上、「一度に1回」としか呼び出すことができません。ロックは必要ありません。

于 2012-05-06T15:48:07.317 に答える