2017-01-16 7 views
0

センサーからの重要な情報を格納する必要があるアンドロイドアプリがあります。センサは5msごとにデータを更新します。これらのデータポイントをテキストファイルの内部メモリに保存する必要があります。5秒ごとにファイルに書き込むAndroidアプリ

現在のシナリオでは、バッテリの寿命を節約するために、データポイントをメモリで2秒間収集し、2秒後にファイルに書き込んでいます。しかし、アプリがクラッシュする状況下では、重要なデータポイントが失われています。

誰もこれを処理する方法に関する提案はありますか?

5msごとにデータポイントをファイルに書き込むことをお勧めします。これはバッテリ寿命を大幅に短縮し、CPUの負荷を増加させるでしょうか?誰かが同様の状況に遭遇した場合、問題の解決方法を教えてください。

+0

5msごとにデータを収集し、ローカルデータベースに格納します。ファイルに書き込むと5msごとに多くの費用がかかります。そして、ファイルに書き込むために、1日間隔にしてください。 – TheLittleNaruto

+0

ひどいことではありませんが、重要な情報を使って作業している場合、アプリはクラッシュすることはありません!さらに、クラッシュ中にさらに多くのデータを失うことになり、その後2秒間にデータが失われます。あなたが外部ファイルを書き込んでいる場合は、 – lionscribe

+0

のファイルのみが書き込まれます。クラッシュはファイルに影響しません。たとえば、txtなどのファイルに書き込んでから、再度書き込む前に現在のコンテンツを読み込み、新しいコンテンツを追加してファイルを書き換えます。 – Mushirih

答えて

0

あなたのアプリケーションは重要なので、私はアプリケーションクラスのThread.setDefaultUncaughtExceptionHandlerを呼び出してDefaultUncaughtExceptionHandlerを設定します。このようにハンドラでは、保存されていないデータをすべて書き込むことができ、重要なデータを引き続き処理するためにアプリケーションを再起動することができます。私はクラッシュの無限ループを防ぐために、そこに数秒のカウンターを置きます。オープンソースのACRAライブラリはThread.setDefaultUncaughtExceptionHandlerを使用していますので、そこから使用方法を知ることができます。
追加のアイデアは、別のプロセスでサービスを使用してデータを書き、「リモートサービス」を検索することです。この方法では、たとえアプリケーションがクラッシュしても、サービスはまだ生きています。あなたは、アプリケーションとサービスの間でデータを共有する方法のいくつかの機能をセットアップする必要があります。アプリケーションが本当に重要な場合、私は2つのリモートサービスを設定します.1つはセンサーから情報を取得し、書き込まれたことを確認するまでバックアップとしてキャッシュします。また、データをキャッシュして数秒ごとに書き込みます。上記のように、各サービスにはDefaultUncaughtExceptionHandlerも必要です。これは実際のアプリに加えて、ユーザーインターフェースを持っています。リソースは少し浪費されますが、重要なデータの場合は無駄ではありません。

0

私はいい方法があると思います。多分クラッシュを避けることが重要なのは

0

コストのかかる操作である5 msごとにファイルに書き込む代わりに、SharedPreferencesからのデータをファイルに保存して、5ミリ秒ごとおよび2秒ごとにSharedPreferencesにデータを保存できます。 SharedPreferencesのコンテンツは、アプリケーションがクラッシュしても削除されないため、データが失われることはありません。

+0

これが良い考えであるかどうか分かりません。私はこれに対して提案する複数の異なる投稿を読んだ。SharedPreferencesは頻繁な更新に使用しないでください。これは、あまり頻繁に更新されない小さな情報を格納するためにのみ使用してください。 – abhogu

1

あなたのアプリクラッシュの理由を調べることをお勧めします。内部例外のためにアプリがクラッシュしている場合は、この問題を処理するより良い方法があります。

優れた例外管理を作成し、例外が生成されるたびにこのブロックを使用して内部メモリにデータを書き込みます。データが正常に書き込まれたら、アプリケーションを再起動してください。

あなたはアプリが外的理由のためにクラッシュしており、例外を捕まえることができないので、他の方法を考える必要があります。

関連する問題