2012-05-06 67 views
0

我正在開發一個可點擊的小部件。我想使用一個靜態的java.util.concurrent.locks ReentrantLock,所以這個小部件邏輯一次只能調用一次。BroadcastReceiver和ReentrantLock。有什麼問題嗎?

但我擔心的是,這有可能在很罕見的情況,該鎖沒有被釋放,因爲它是事先殺死,因爲10秒生命週期窗口。

正在使用的ReentrantLock在所有有異議?什麼是釋放鎖的最佳方式?

或者,也許是有一個Android的選項來運行它只是單線程的?

在我考慮在finally塊或finalize方法(哎喲)在的onReceive月底解除鎖定的時刻。

回答

0

我想使用靜態java.util.concurrent.locks ReentrantLock,因此一次只能調用一次小部件邏輯。

onUpdate()AppWidgetProvider在主應用程序線程上被調用。根據定義,它只能被稱爲「一次一次」。你不需要鎖。