System.currentTimeMillis()を使用して、ユーザーがアクティビティを開始する時間を節約します。
public class TimeStamp {
protected long _startTimeMillis = System.currentTimeMillis();
public String getStartTime() {
return new Time(_startTimeMillis).toString();
}
アクティビティが開始されるとクラスがインスタンス化され、getStartTime()が正しい時刻を返します。また、活動開始後の経過時間を把握するようにしています。
public String getElapsedTime() {
return new Time(System.currentTimeMillis() - _startTimeMillis).toString();
}
これは、エミュレートされたandroidデバイス(android 4.0.3)を使用して完全に正常に機能します。しかし、実際のAndroidデバイス(android 4.0.3)にアプリケーションをデプロイすると、getElapsedTime()はさらに1時間で開始し、通常どおりカウントアップします。したがって、実際のデバイスでは、アクティビティの開始後にgetElapsedTime()は「01:00:01」を返しますが、「00:00:01」を返す必要があります。
なぜこれが起こるのか考えがありますか?