1

「キャッシュ」が正しい用語であるかどうかはわかりませんが、ここで質問があります。私のアプリでは、インターネットからJSONデータをロードし、正常に機能しているように見えるリストビューにデータを入力するアクティビティがあります。

本当の問題は、インターネット接続が緩んでいて空白の画面が表示され始める瞬間です。インターネット接続がない場合に以前に生成された古いリストビューを表示し続け、永続的な場合にのみデータをフェッチする方法はありますか?繋がり。

ネット接続があるかどうかを確認する方法を知っているので、コードを記述しないでください。私の主な関心事は、以前にロードしたリストビューを保存し、接続が見つからない場合に表示することです。

私が今考えることができる唯一のことは、ローカルのsqliteデータベースを利用することです。

4

1 に答える 1

2
onResume()
IF internet THEN request (AsyncTask?)
    Validate response and build Model objects from JSON
    IF objects are good THEN give objects to ListView adapter

このようにして、インターネットに接続している場合にのみ、リストが更新されます。

onCreate()ではなくonResume()を使用するのはなぜですか?別のアクティビティから戻ったとき、アクティビティonResume()自体;)

ユーザーフレンドリーな部分として、この「更新」をいつ行うかはわかりませんが、自分で行うことは避けてください。アクションバー(またはメニュー)は、ユーザーが必要なときにデータを更新できるようにするためにここにあります。

ユーザーフレンドリーなパートIIのために。更新中にユーザーがリストを操作してはいけないと思う場合は、そのリストのイベントを無効にするか、ユーザーが何もしてはいけない場合(アプリはそのリストのオブジェクトを操作するため)、進行状況ダイアログを使用して通知しますあなたが何かをしているユーザー

于 2013-02-06T14:05:05.023 に答える