2

ユーザーがボタンを押したときに、現在の時刻(たとえば、2時間の遅延)をファイルに保存するアプリケーションを作成しています。後で、アプリケーションは時間が経過したかどうかを確認し、いくつかのことを行います...

だから...私はアプリケーションのボタンをクリックします(時間がファイルに保存されます)...私はアプリケーションを終了します...電話をシャットダウンします...私は1時間後にそれをオンにし、アプリケーションに戻ります...そして私はアプリケーションが私に「何か」をさせてくれるまで、まだ1時間待たなければなりません...

質問:

ユーザーが変更できず、デバイスの電源がオフになっても動作し続ける時計はありますか?私は現在、を使用してSystemClock.elapsedRealtime()います。これは、ユーザーが設定で時間を変更してもelapsedRealtime同じままであるため、正常に機能します。elapsedRealtime問題は、すべての起動時に0から始まるため、デバイスの電源がオフになるかどうかです。

アプリケーションがインターネットに接続されないため、サーバータイムを使用できません。

そのような時計がない場合は、別の解決策を提案してください。

4

3 に答える 3

1

実際には、「オフ」のハードウェア クロック データを取得する機会はありません。ハードウェアクロックは、新しい電話の古い電話にあっただけで、誰も必要としないと思うので、ハードウェアに組み込まれていません。古い携帯電話には「ハードウェア」クロックがありましたが、新しいデバイスではそのようなものではないと思います。私は、グーグルが何らかのフレームワークを作りたい、またはそれを実装したいということについて何かを読みました。ただし、オフモードで起動できるアラームはありません。

申し訳ありませんが、現時点では不可能だと思います..

于 2012-09-14T02:10:22.073 に答える
0

年 日 月 時 秒 ミリ秒を示す DateTime 値としてデータベースに時間を保存し、起動時にサービスを開始してそのデータを読み取り、残りの時間でトリガーされるアラームを作成するように要求できます。コード例を挙げたいと思いますが、私はJavaプログラミングが得意ではないので役に立たないかもしれませんが、とにかく頑張ってこれを実装してみてください。

于 2012-09-14T03:07:03.803 に答える
-1

明らかに、データを不揮発性ストレージに保存する必要があります。アプリがAndroidによって一時停止/破棄された場合は、それを脅威と見なして時間の値をディスクに保存する必要があります。次に、アプリが再起動したときに、アプリは以前に書き込んだデータを読み取り、次のように実行し続ける必要があります。通常はそうです。

どのように質問するかということになると:

最も簡単な解決策は、を使用することSharedPreferencesです。

より複雑でより柔軟なものはSQLiteデータベースです。

Androidストレージの詳細については、次のことをお勧めします:ストレージオプション

于 2012-09-14T00:23:06.780 に答える