在android中保存计时器的价值

时间:2014-06-29 14:37:06

标签: android android-orientation chronometer

我的应用程序有一个计时器,我希望在两种情况下继续运行:更改屏幕方向和按下后退按钮并退出应用程序。

       chronometer= (Chronometer) rootView.findViewById(R.id.chronometer);
       chronometer.setBase(SystemClock.elapsedRealtime());
       chronometer.start();

我想知道有什么方法可以放置代码,以及处理与天文台有关的所有代码。

1 个答案:

答案 0 :(得分:0)

活动开始时:

void onCreate() {
   chronometer = (Chronometer) rootView.findViewById(R.id.chronometer);
   resetAndRun();
]

其中:

void resetAndRun() {
   // reset base time to current
   chronometer.setBase(SystemClock.elapsedRealtime());
   // and start ticking
   chronometer.start();

}

这将使用计时器启动您的应用程序。

现在,要收听背压(BTW,在Android中不等于app关闭):

public void onBackPressed() {
  resetAndRun();
  super.onBackPressed();
}

这是一个棘手的问题:在按下后,屏幕将不再对用户可见,但时钟仍将打勾,下次活动变得可见时,更新 将显示计时器值。

倾听并对屏幕方向做出反应需要明确声明:

<activity android:name=".MyActivity"
          android:configChanges="orientation|screenSize"  // <--------------
          android:label="@string/app_name">

活动回调:

public void onConfigurationChanged(Configuration newConfig) {
   super.onConfigurationChanged(newConfig);
   resetAndRun();
}

希望它有所帮助。

吉拉德