2012-03-06 15 views
10

私はこのトピックが前にStack Overflowで議論されていることを知っています。しかし、それについて私が以前の記事を読むときにはっきりしないいくつかの事がまだあります。だからここに、彼らは以下のとおりです。共有の設定とsqliteの違い

  • 私たちは、大規模なデータ操作のための小さなデータセットとsqliteのための共有のプリファレンスを使用することを知っているので、私達はちょうど私たちが共有設定を使用する必要があり、ユーザー名とパスワードを保存したい場合は?
  • ユーザーがアプリをアンインストールすると共有設定が失われませんか?たとえば、私はabcという名前のアプリをダウンロードし、ユーザー名とパスワードを保存します。私は1つの電話からこのアプリをアンインストールし、同じユーザー名とパスワードを使って他の電話からアクセスしようとします。共有設定を使用してこれを保存するか、データが失われますか?
  • 大規模データセットと小規模データセットの両方を使用する主な理由は何ですか?
+0

質問もあります。私はいくつかの文字列とintsデータを格納したい、ユーザーはそれらを記入したい(私は無制限の項目番号を格納したい)。この場合、どちらが良いか教えてください。ありがとう! –

答えて

18

共有設定とSQLiteデータベースの違いはデータサイズの点では考えられますが、完全に正確ではありません。それを考える良い方法は、保存したいデータの構造です。

共有設定にはキーと値のペアリングしか保存できませんが、SQLiteデータベースの方がはるかに柔軟です。共有された設定は、ユーザの好みを格納するのに特に有用である。アプリケーションは通知を表示する必要があります。SQLiteデータベースは何にでも役立ちますが、

両方のデータソースはローカルですが、ユーザーのGoogleアカウントにリンクされているクラウドストレージにアプリケーションデータをバックアップする機能があります。これにより、ユーザーはデバイスを変更したり、アプリケーションが新しいデバイスに簡単に転送できるようになります。詳細はhereをご覧ください。

1

の両方がローカルにデータを保存するため、アプリをアンインストールすると両方が削除されます。それ以外の場合、SharedPreferencesはプログラミングが簡単で、データ量についてはあなたが正しいです。

+0

sqliteを使っても、データを保存することはできませんか?どのようにデータを保存しますか?ユーザー名とパスワードを保存または取得できない場合、これらを使用するポイントは何ですか? – NoviceMe

+0

ユーザーはアプリを削除しない限り、データを保存することができます。ユーザーがアプリを削除して再インストールした場合でもデータを保持したい場合は、Webサーバーを設定する必要があります。 –

0

通常、ユーザーが特定のデータフィールドを直接操作できるようにするには、共有プリファレンスを使用する必要があります。共有プリファレンスは、基本的にユーザープリファレンスです。ユーザーがさまざまな方法で動作するようにアプリを再構成したい場合は、その機能を共有プリファレンスとして公開する必要があります。一方、データの可視性をアプリケーションだけに制限したい場合、データが永続的であるというより強い保証が必要な場合、およびアプリケーションが何かとは独立して動作するようにしたい場合は、SQLiteデータベースを使用する必要がありますデータベースに格納される。もちろん、両方のアプリケーションを1つのアプリケーションで使用できます。

共有設定とデータベースは、アプリケーションが格納するローカルデータの一部です。アプリケーションをアンインストールすると、両方のデータストアが削除されます。

4

あなたについて記述した状況では、両方の状況でユーザー名とパスワードが失われます。データは電話機に保存されます。アプリケーションをアンインストールすると、その一部のデータも失われます。ユーザーはこの情報を再入力する必要があります。

ユーザー名を保存して、共有プリファレンスまたはDB(個人的な好み)を渡すことができます。どちらか一方のみをロックしてください。つまり、この情報を保持しているDBまたは共有設定を共有しないでください。

違いは...共有設定はうまくいくはずです...共有設定...ここ

背景色を変更するオプションを作成した場合、使用可能なすべてのオプションをDBに保存し、ユーザーが選択できるようにアダプタビューに読み込むことができます。しかし、私は彼らが共有環境設定で選択した色を保存します。このようにしてアプリケーションがロードされると、使用すべき背景色の共有嗜好値を得ることができます。

3

SharedPreferencesは、アプリケーション全体で共有されるユーザー設定を格納するためにのみ使用されます。たとえば、ユーザのユーザ名、またはあなたが覚えておいてほしいアプリに設定したオプションを保存するために使用することができます。

SQLiteはリレーショナルデータベースです。これは、設定や設定情報ではなく、アプリケーションのデータを保存するために使用されます。

どちらもローカルにデバイスに保存されます。

+0

それで、ユーザーがアプリをアンインストールした後でも、ユーザー名とパスワードを持っていることを確認するにはどうすればよいですか? – NoviceMe

+0

あなたのアプリが接続してそこにデータを保存するウェブサーバーを使用します。 –

2

1.SharedPreferencesは、ブール型、int型、float型、long型、ストリング型の5種類のシンプルなデータ型のみを格納します。したがって、SharedPreferencesのデータストレージ操作がどれほど単純であるかは、ストレージの補足に過ぎませんが、SQLiteデータベースなどの他のデータを完全に置き換えることはできません。

2.SharedPreferencesは、構成情報(主にアプリケーションのユーザー設定)の格納に使用されるキー値キーを格納するXMLファイルに基づいています。

3.Sharedprefreceクライアントサイドに基本情報を格納しているweb内にcookiesと同じように。

関連する問題