2012-02-29 9 views
1

私はプロジェクトに取り組んでいます。このアプリが欲しい人は、スマートフォンがデータベースにアクセスするのを望んでいません。彼らはxmlファイルをオンラインに置きます。アプリケーションが最初にインストールされるときに、xmlをローカルのsqliteデータベースに読み込んで、データをオフラインでアクセスできるようにします。スプラッシュスクリーン上のAndroid Asyncタスク

これで、xmlファイルがsqliteにロードされます。 xmlファイルをロードするのに時間がかかりませんが、非同期タスクに配置するのに十分な時間です。今私はスプラッシュスクリーンを作成し、非同期タスクでxml解析を実行するのが賢明かどうかわかりません。それとも、別の時間にこれを行う必要があるのですか?

誰にでも解決策がありますか?

ありがとうございます!

+0

アプリケーションはデータなしで機能していますか?もしあなたが最初の準備をしているときに* As *であるならば、おそらく 'AsyncTask'と進歩の更新/スプラッシュでなければなりません。 – Jens

+0

データは必要ありません。だから私はスプラッシュでasynctaskのデータを読み込むのは初めてです。そして、ユーザーにプログレスバーをフィードバックしてください..すばやい返信をありがとう! –

答えて

0

最初に、ネットワークとデータベースのルックアップを含む操作はすべて、別のスレッドで実行する必要があります(AsyncTaskを使用することをお勧めします)。次に、あなたのロジックを実装するには2つの方法があります:データをフェッチし、DB内に配置される前にユーザーがアプリケーションと何もできない場合は

  1. が、あなたはおそらく、そのアプリケーションをユーザーに伝えるProgressDialogのいくつかの種類を示すべきです仕事のために準備している。
  2. インターネットからのデータを必要としないその他のオプションがある場合は、データフェッチ操作をバックグラウンドで完全に実行して、ユーザーがアプリケーションと対話できるようにする必要があります。

これが役に立ちます。

+0

xmlファイルをアプリケーションに配置するとよいでしょうか。だから彼らはインターネットのアクセス権を持っていないとき、私はXMLファイルを解析することができます。 (そして、彼らは彼らがデータベースの古いバージョンを持っていることを知らせる)しかし、彼らはアプリを使用することができます。彼らはインターネットにアクセスした瞬間、私はアップデートをチェックしますか? –

+0

番号1の場合は、プログレスバー/ダイアログでスプラッシュを表示することもできますか? –

+0

@ user1110599、あなたのアプリケーションのロジックが許可している場合は可能です。また、接続情報を聞くためにサービスと放送受信機を実装することをお勧めします。ユーザーがネットワークに接続すると、サービスはバックグラウンドでデータをダウンロードして、ユーザーが開いたときにアプリケーションをすぐに使用できるようにします。 – Egor

0

私は、あなたのサーバーがダウンしている、あるいはユーザーのインターネット接続に何か問題があるとエラーにどう対処するかによって決まると思います。スプラッシュスクリーンは、アクティビティ自体を表示するために必要なリソースをロードするためには問題ありませんが、私はバックグラウンドでユーザーを待機させておくのは良い考えではありません。 。

+0

これは実際に私が恐れていることです。しかし、アプリケーションがデータなしでは動作しません。だから私は選択をする必要があります。現時点では私は別の解決策を見ていないし、スプラッシュ。どのようにこの問題を解決しますか? –

+0

「アプリを欲しい」と話すべきだと思っています。彼らは最後にあなたが持っているXMLをキャッシュしてもらいたいですか?より新しいバージョンを作成してUIを更新するだけで済みます。とにかく、それは良いアイデアではないスプラッシュスクリーンにはまって、そうしないでください。 –