私のAndroidプログラムでは、2つのCalendarインスタンスを使用してプログラムの経過時間を取得しています。最初に、レベルの開始時間を次のように設定します。
level_Start_TimeCal = Calendar.getInstance();
私のスレッドでは、経過時間を次のように計算しています。
level_current_TimeCal = Calendar.getInstance();
gameTime = level_current_TimeCal.getTimeInMillis()- level_Start_TimeCal.getTimeInMillis();
dsecs = (gameTime / 1000)%60;
dminutes = (gameTime / (60 * 1000))%60;
dhours = (gameTime / (60 * 60 * 1000))%60;
最近、私は以下を読むようになりました:
CalendarのgetInstanceメソッドは、カレンダーフィールドが現在の日付と時刻で初期化されているCalendarオブジェクトを返します。
私が正しい道を進んでいるかどうか知りたいですか?
スレッドが実行されるたびにオブジェクトを作成していますか?
はいの場合、不要なオブジェクトの作成と経過時間の計算を回避するための代替手段はありますか?最後の質問:ある時点で、restartメソッドで時間をリセットしたいのですが、次のように、resetメソッドでgetInstanceを呼び出すだけで時間をリセットします。
public void restart() {
level_Start_TimeCal = Calendar.getInstance();
}
これはカレンダーをリセットする正しい方法ですか?