無料と有料の2つのバージョンのアプリがありますが、コードを個別に管理しています。私はついにコードを両方が参照するライブラリに移動して、コードの保守を容易にしました。
変更するAppwidgetProvider
とランチャーが既存のウィジェットを削除することがわかったので、ユーザーがウィジェットを再作成する必要がないように、プロバイダーを同じに保つためにそれらのクラスをライブラリから戻しました。ランチャーはウィジェットを削除しなくなりましたが、代わりに、更新後にウィジェットが表示されなくなりました。
いつものように、componentnameを呼び出すAppWidgetManager.getAppWidgetIds
と、appwidgetidはまだそこにあります。appwidgetproviderとサービスは引き続きウィジェットを更新するために呼び出され、ウィジェット/data/system/appwidgets.xml
は表示されますが、ランチャーはウィジェットを表示しません。
ウィジェットの場所を長押しすると壁紙チューザーが表示されるので、表示されないわけではありません。新しいウィジェットは問題なく作成できますが、ウィジェットの再作成をユーザーに依頼してイライラさせたくはありません。ログには、ランチャーまたはによってスローされたエラーは表示されませんAppwidgetService
。
ウィジェットが更新後にレンダリングを停止する理由はありますか?これは、コードの大部分を別のライブラリに移動することに何らかの形で関係しています。ありがとう!
編集:エミュレータ、APIレベル15、ストックランチャーでテストしています