0

Sony SmartWatch アプリに問題があります。コントロール付きのウィジェットを開発しましたが、ユーザーがデバイスにアプリをインストールすると、ウィジェットのスケジュールされた更新タスクが自動的に開始されます。これは、ユーザーが SmartWatch Display をオンにしたり、ウィジェットを開始したりしていなくても、更新タスクが常に実行されていることを意味します。これにより、バッテリーが消耗します。ウィジェット画面に行ってディスプレイをオフからオンにすると、スケジュールされたタスクが予期したとおりに停止します。しかし、これを行わないと、タスクが実行され、実行され、実行されます..ディスプレイがオンで、ウィジェットが実行されているかどうかを検出するにはどうすればよいですか?

どうもありがとうございました!

PS: 「ウィジェットを有効にする」設定がオンになっているかどうかは関係ありません....

編集: 環境設定で [ウィジェットとして表示] チェックボックスをオフにすると、ウィジェットのソースコードが起動しないことがわかりました。これは、更新スケジュールが実行されていて、このボックスのチェックを外すと、onDestroy が呼び出されないため、キャンセル スケジュールも呼び出されないことを意味します....

4

1 に答える 1

1

ありがとうございます。SmartWatch ホスト アプリケーションの不適切な動作、つまりバグを発見したと思います。

インストール時に、ホスト アプリケーションは START_REFRESH_IMAGE_REQUEST を送信して、ウィジェットに関する情報をキャッシュできるようにします。ただし、STOP_REFRESH_IMAGE_REQUEST を呼び出しません。おそらくそうすべきです。これは調査する必要があります。

この問題を調査している間、問題を解決するための回避策を見つけてください。たとえば、最初の START_REFRESH シグナルがいつ送信されたかを追跡するために使用されるグローバル静的変数または SharedPreference を持つことができるため、更新サイクルを停止できます。

ありがとう、そしてごめんなさい。

問題の解決方法がわかり次第、このスレッドに再度投稿します。

于 2012-09-20T10:41:51.880 に答える