さて、これが私の問題です。SMSメッセージを受信し、それらを並べ替えることができるアプリを作成しています。それはすべて正常に動作しますが、SMSを受信したときに電話を振動させ、音を鳴らし、画面を点灯させるクラスを作成する必要があるところです。システムにログインするため、SMS を受信したときにアプリに通知する方法はユーザーごとに異なります。私は、構築時に 3 つの通知メソッドのユーザー設定をファイルから int として読み取り、これらの int の新しい値を保存して、実際の通知を行うことができるクラスを作成しています。オブジェクトが構築されるときに、ユーザー名をパラメーターとして受け取り、そのユーザーに固有のファイルから設定を読み書きするようにしました。私の質問はこれです:これらの int をファイルから保存および取得する最良の方法は何ですか? 私は SharedPreferences について知っており、非常に使いやすいですが、これをどの程度信頼できますか? アプリを閉じて電話の電源を切り、すべてを最初からやり直しても、情報は残っていますか? 私は現在、java.io.Serializable を実装する 3 つのパブリック int フィールドを持つ小さなクラスを作成し、オブジェクト全体をファイルに保存することを考えています。これは、必要なときに特定の int を簡単に取得できるためです (キー/値、SharedPreferencesのように)、しかしこれは非常に遅いプロセスであり、アプリは大量のメッセージを受信するため(1分に1回以上になる可能性があります)、受信するたびにファイルから読み取る必要があるため、アプリがちょっとバッテリーの寿命も重要なので、重いです。それが私の質問です。独自の読み取り/書き込みファイルシステムを作成する必要があります。
私は sharedpreferences を使用しましたが、うまく機能します。ありがとう! =)
保存の全体的なパフォーマンスについて詳しく説明すると、sqlite データベースに価値があるためには、どのくらいのデータを保存する必要がありますか? これらのSMSはすべて特定の方法で保存する必要があり、おそらく一度に数百になるため、sqliteデータベースを使用するにはそれで十分ですか? ある量のデータに達するまで、データベースの使用はioの方法よりも少し遅いとどこかで読んだので? 私はデータベースが価値があることを望んでいます.
2 に答える
SharedPreferencesは、データを安全に保存できます。これは、データを保存するための推奨される方法の1つです。http://developer.android.com/guide/topics/data/data-storage.htmlを参照してください。
もう1つの方法は、非常に安全ですが、ユーザー名とそれらのintがあるSQLテーブルを使用することです。ほんの少しの値なので、これは簡単に実装できるはずです。同じリンクでこれに関する詳細情報。
これらの2つの方法のいずれかを使用せずに、ファイルシステムを使用する理由はわかりません。それらは以前に何度も使用されており、機能するだけです。
SharedPreferences は、あなたがしていることに対して完全に機能するはずです。パスワード以外の設定に必要なものすべてを保存する鉱山を実装しました。なくなったことは一度もありません。
また、SharedPreferences は、SharedPreferences ファイルと同様にファイルに書き込みます
ユーザーがアプリを削除した後もこれらの設定を保持したくない場合を除き、目的に適しています。
ファイルを書きたい場合は、xml または json として書き出すのがおそらく最善の方法です。後者はおそらく数分の一高速です。次に、必要に応じてこのファイルをロードします。
それでも、SharedPreferences よりもファイルへの書き込みを選択するのは難しいと考える必要があります。信頼に値します!信頼できない場合は、私と、おそらく Android とそのアプリケーションを作成している他の人々を信頼してください。