0

私はAndroidの開発、およびプログラミング全般に不慣れです。

私は各プレーヤーのサッカー統計を作成するアプリを開発しており、長期的にはSQLiteを使用してデータを保存しています。ただし、ユーザーが新しい統計を追加しようとするたびに、データをデータベースに挿入せずにアプリケーションの実行中に保存する方法があるかどうか、そしてそれが理にかなっているのかどうか疑問に思いました。

また、そうすることに意味があるのだろうかと思います。私の最大の懸念は、データを常にデータベースに挿入するとアプリの速度が低下することです。経験豊富な開発者が知っていることを感謝し、この問題について考えてください。 '

私はこのトピックを調査しようとしていましたが、データをdbに保存し、SharedPreferencesを使用するだけで、それが私が探しているものではないと思いますが、間違っている可能性があります。

助けてください。

4

4 に答える 4

1

SQliteはあなたが探しているものです。SharedPreferencesそれだけのためです-好みであり、大量の統計ではありません。

データベースコードを別のスレッドに配置すると、アプリの速度低下に気付くことはありません。これについては、ここに戻って助けを求めてください。

于 2012-07-04T15:06:47.187 に答える
0

Androidと直接話すことはできませんが、iPhoneとデスクトップアプリケーションで同様の設計上の問題に直面しています。

何が最善の方法であるかは、アプリケーションの詳細によって異なります。あなたのアプリが主に演劇の入力と統計の保存に関するものである場合、ユーザーインターフェースにデータを入力するのに十分な最新の統計の小さなセットをメモリに保持し、これらを挿入することを唯一の目的とするバックグラウンドスレッドで実行される「データマネージャー」を作成しますデータベースに新しく追加された統計。

于 2012-07-04T15:08:42.317 に答える
0

正直なところ、すぐにDBに入れます。androidの動作方法では、ユーザーが別のアプリに移動した場合(または、電話を受信した場合でも)、既に入力したデータが失われる可能性があります。

その不測の事態を明らかにカバーすることは可能ですが(保存onPauseなど)、データをできるだけ早く永続的なストレージに保存する方が安全だと常に感じていました。(これは熱く議論されているトピックであることに注意してください、私は単に私の好みを述べているだけです)。

DBにすぐに保存しても、バッテリーの寿命ほどアプリの速度には影響しません(挿入するデータの種類によって異なります)。プロセッサが実行する必要のある手順がさらにいくつかあるため、永続ストレージへのアクセスには電力の面でより多くの時間がかかります。

UIスレッド以外のスレッドですべてのDBアクティビティを実行すると、アプリの速度の点でトランザクションはほとんど完全に気付かれなくなります。

于 2012-07-04T15:09:35.187 に答える
0

ローダーコールバックの実装を使用する場合、アプリケーションの速度が低下することはありません。ローダークラスを見てください。これらは、Android互換ライブラリから入手できます。

于 2012-07-04T15:10:09.540 に答える