2017-11-07 5 views
0

私は、オフラインで通常量を収集し、夕方にはオンラインで金額を集めている一日中収集したユーザーのために使用されるアプリを持っています。場合によっては、デバイスの日付と時刻が不正確であるため、間違ったデータがアップロードされることがあります。シムなしでインターネットなしで正確な時間

収集時に、デバイスから日時が取得されています。それは、アプリが常にSimとインターネットなしで正確な日時を保存する方法はありますか?

+1

デバイスクロックが壊れていることを提案していますか? –

+0

バッテリーを取り外すとデバイス時間が1月1日のようにデフォルトに設定されます。 –

+1

あなたのユーザーは馬鹿ですか?最後のアプリの実行やデバイスの再起動後の負の時間の歪みや、現在の日付時刻を確認するためのユーザーとして検出しないのはなぜですか?確認と時間が間違っている場合は問題です –

答えて

1

さて、これを行うアプリを検索する前に。人間としては、インターネットなしで日付/時刻が正しいかどうかをどのように伝えることができますか? 可能な解決策は、デバイスがインターネットに接続された最後の時刻からの秒数をカウントするサービスです(つまり、その時点で正しい日付/時刻があったことを意味します)。その後、新しい量を追加する場合は秒を追加できます最後にこの値を保存します。

編集

あなたはこれを達成するための2つのことになります。

  • BackgroundService
  • あなたは多くの方法で達成することができますカウンター、私は簡単な方法を行くだろう。 how-to-measure-elapsed-time これを行うには、AlarmManagerを使用することができます。

もう1つデバイスがオフになったり、何らかの理由で何かがサービスを停止したりすると、注意する必要があります。これらはすべてユーザーの問題であり、ユーザーのために何を処理するかを決める必要があります。 SqlLiteデータベースを10〜15秒ごとに押すことでユーザーのミスを修正できますが、デバイスが何時間もオフになってから間違った時間に再開した場合は修正されません。この-。

+0

この作品を管理するライブラリ@Yamen Nassif –

+0

私は答えを編集します。 –

関連する問題