web-dev-qa-db-ja.com

Androidでsqliteデータベースを使用する理由

Androidでsqliteデータベースを使用するのはなぜですか。サーバーからデータをフェッチしてデータ計算を行い、UIに表示するAndroidアプリケーションを開発しています。

データをsqliteDBにフェッチし、sqliteから定期的にUIを20分で更新するのは良いですか、それともHttp getリクエストをサーバーに送信して、応答からのデータを更新するのは良いですか? UI。

どちらが優れているのか、そしてその理由を知りたかったのですが、なぜsqlite DBを使用するのですか?データは、いくつかの重い数学的処理が実行されてからUIに表示される(株式市場アプリケーションと同様)40X40テーブルデータに対応し、データは12時間ごとにクリアする必要があります。 plzアドバイスRgds、ラウル

29
Raulp

あなたのケースではデータベースを使うのは良いことです。

長所:

  • アプリケーションが閉じられると、メモリ内のデータは失われますが、その後、データベースがある場合はデータベースから状態を復元できます。
  • 特に複雑な計算の場合は、結果をデータベースに1回保存し、オンデマンドで複数回再計算しないことをお勧めします。
  • データベースはUIをインターネット接続から切り離すため、インターネット接続がなくても結果を表示できます。
  • データベースを使用すると、UIに影響を与えることなく、バックグラウンドサービスから更新されたデータをフェッチできます。
  • データベースでデータを整理すると、通常、すべてのアプリケーションデータの管理がはるかに簡単になります。

短所:

  • データベースを追加するには、あなたの側で少し追加の努力が必要になります

あなたが見ることができるように私のリストはあなたがあなたの場合にデータベースを使うべきであることを証明します。多分私は偏見がありますが、少なくとも私はあなたに考慮すべきことを提供します。

25
Boris Strandjev

これは本当に設計上の決定です。SQLiteはデータを整理して永続化するための非常に堅牢な方法を提供します。他のオプションはファイルに書き込むか、SharedPrefsに保存することだけです。どちらの方法も、サイズが大きくなると管理が非常に難しくなります。オブジェクトのリストを手動で保持し、その名前などを管理する必要があるため、データが増大し始めます。40x40のテーブルデータは、12時間ごとにテーブルを削除して再作成する場合でも、SQLiteを使用するのに十分な大きさです。

ORMライブラリを使用して、DBからのデータのフェッチと保存を簡単にすることを検討することをお勧めします。ORMLiteは優れており、Androidと互換性があります。

http://ormlite.com/

4
Sam Clewlow

アプリケーションがインターネット接続に大きく依存している場合は、データベースに情報をバッファリングする必要はありません。ただし、信号が悪いかまったくないアプリを使用する場合は、sqliteデータベースからキャッシュされた値を使用することをお勧めします。インターネット接続が遅い場合、アプリケーションが応答しない可能性があるため、キャッシュすることをお勧めしますが、必ずしもsqliteデータベースにあるとは限りません。デバイスに頻繁に必要であり、サーバーコンポーネントに関係のないデータには、sqliteデータベースを使用する必要があります。データが頻繁に更新されるが、アプリケーションの実行中にのみ更新される場合は、デバイスのメモリにキャッシュすることをお勧めします。あなたのアプリは12時間以内に常に実行されているわけではなく、何かをチェックするために定期的に呼び出されていると思います。

3
konqi
> update the UI on regular interval from the sqlite in evry 20 minutes 

アプリがこれほど長期間開いているとは思わないでください。

あなたのケースに正確に提案する

 Avoid DB 

 Fetch Data at app start or at appropriate time when app is opened 
 and save it in plain Java objects.

 Define Methods within it that perform operation in it.

 Make map or list to save those POJO

 Define Seprate Controller Classes within your project to update map of pojo at any     
 specific change to make fresh data available to UI.
0
Javanator

12時間は長い時間なので、データをRAMに残しておくのではなく、データベースを使用することをお勧めします。いつもう一度読む必要があるのか​​わからないからです。

それ以外の場合、目的がデータのダウンロード、処理、アクティビティでの表示のみである場合、アプリが閉じている場合(ユーザーまたはメモリ不足のため)、とにかくアプリはから新しいデータをダウンロードするため、データベースを関与させる必要はありません。サーバー...私は正しいですか?

0
waqaslam