我開發了一個小部件,出現了一個奇怪的問題。該小部件通常在主屏幕上正常工作,並且應該進行更新。我最近對代碼做了一些更改,爲widget接收器添加了更多意圖。更新應用程序後,Widget接收器停止工作
widget的原意過濾器是如下:
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
更改後,我增加了以下意圖:
<intent-filter>
<action android:name="com.basi.widget.MY_UPDATE_WIDGET" />
<action android:name="android.intent.action.TIME_CHANGED" />
<action android:name="android.intent.action.TIMEZONE_CHANGED" />
<action android:name="android.intent.action.LOCALE_CHANGED" />
</intent-filter>
,並通過對服務進行更新改變了小部件由發送MY_UPDATE_WIDGET意圖的週期性警報進行更新。 問題是,當我更新應用程序時,小部件停止更新並出現「問題加載小部件」。當我從主屏幕上移除小部件並將其添加回來時,即使我安裝了更多更新,它也能正常工作。看起來特定更新出現問題,即意圖改變。我已經檢查了logcat,並且沒有錯誤,但是我注意到onReceive intent在初始更新後沒有啓動,因此可能是問題所在。
我懷疑已經在主屏幕上的小部件知道接收哪個意圖 - 如果它沒有重新初始化(通過刪除它並將其添加回去),它不會聽新意圖,所以這是爲什麼問題發生。有沒有辦法告訴小部件開始接收新的意圖?這是一個不同的問題?
有使用proguard,這可以解釋爲什麼我面臨同樣的問題。謝謝 –