1

私が取り組んでいるアプリケーションは、大きな xml ファイルをダウンロードして解析し、UI 要素、つまり検索とスピナーを設定します。これは、非同期タスクによって行われます。この間にユーザーがアプリケーションを切り替えることにした場合、情報は正しくダウンロードされますが、アプリケーションが再開されたときに UI は更新されません。

これは、アプリケーションがアクティブでない間は変更を加えることができないためですか? 再開時に UI が更新されていないかどうかを確認する最善の方法は何ですか? または代わりに、UI スレッドが使用可能かどうかを確認して、Async タスクで何かを行う必要がありますか? デバッガーを終了するアプリケーションを終了する必要があるため、これをデバッグするのに苦労しています。

4

3 に答える 3

0

すべきではありません。アプリがバックグラウンドにあるということはView、オブジェクトがそこにある場合とない場合があることを意味します。実際には、プロセス全体が停止するか、Android によって削除される可能性があります。

Service真にバックグラウンドで処理を行うには、 a を使用します。処理が完了しても UI が表示されない場合は、通知を投稿してユーザーに知らせるか、結果を保存して、次にサービスにバインドするときに UI に提供し、同じこと (キャッシュ) を要求します。

于 2014-10-30T04:58:41.500 に答える
0

バックグラウンドのアプリケーションが稼働していない可能性があります。メモリの制約がある場合、OS はそれを破棄する可能性があります。

秘訣は、別のロジックを試すことです。

アプリケーションがバックグラウンドからフォアグラウンドに移動すると、 onresume() が呼び出され、データをデータベースに保存して、再開呼び出しでコンテンツを更新できます。

FYI.onPause() と OnResume() は、アプリケーションがそれぞれバックグラウンドとフォアグラウンドになるときに呼び出されます。

于 2014-10-30T05:40:46.187 に答える