このようにウィジェットの1つのビットマップを更新しています(ウィジェット全体は1つのImageViewのみです)
remoteViews.setImageViewBitmap(...)
そして、いくつかのまれな状況(毎日の使用の6か月で3回発生しました)で、「!!! FAILED BINDER TRANSACTION !!!」が表示されます。次に、電話機の再起動のみがこの問題を解決します。アンインストールして再度インストールしても効果はなく、再起動するだけです。
アイコンのサイズを確認したところ、わずか 56 キロバイトであり、IPC メモリの制限内に収まっています。setImageViewBitmap(...) を削除すると、ウィジェットは再び機能しますが、ビットマップは更新されません。問題はビットマップ自体にあります。bitmal がこのように小さい場合、このバインダー トランザクションが失敗する原因は何ですか?
今のところ、アイコンを /data に保存することでこれを解決し、URI のみをウィジェットに送信しています。しかし、明らかにIPCメモリ制限に達していない場合、どこに問題があるのか を知りたいですか?
編集:私は言及するのを忘れています、それはアンドロイド2.3.5と2.3.7でも起こりました