3

次の問題があります: アプリがアップグレードされると、アクティブなホーム画面ウィジェットが機能しなくなります。onUpdate() が呼び出される前に元の XML レイアウトに戻り、ブロードキャストを受信しなくなります。

オーバーライドされたメソッド (onDeleted()、onEnabled()、onDisabled()、または onAppWidgetOptionsChanged()) が呼び出されることはありません。

アプリが開いたらウィジェットを再初期化し、ウィジェットのデフォルトのテキストを「ウィジェットの再インストール」のままにして、ユーザーに通知しました。

ただし、除外されている非常に重要な使用例があります。特に、ユーザーがインストール後にアプリを開かずに、ウィジェットを使用したい場合です (図を参照)。

アプリを開かずに、ウィジェットがプログラムで停止したことを検出する方法を知っている人はいますか?

実行中のウィジェット コードが古い apk のものであることは知っていますが、アプリがインストールされるとすぐにウィジェットが実際に終了するわけではなく、ホーム画面に移動したときにのみレイアウトが元に戻るという事実から、 「その真ん中に入る」方法になります。

また、ウィジェットが最初に終了する (ホーム画面に移動する) 前に再初期化された場合、ウィジェットがすぐに終了しないこともわかっています。これが、アプリが閉じられたときにウィジェットを再初期化するために遅延スレッドが必要な理由です。

現在のソリューション

4

0 に答える 0