我曾尝试对活动生命周期进行研究,但我似乎无法找到我正在寻找的东西(或者我只是不理解它。)我已经构建了一个计时器应用程序实际计时器不是主要活动,而是可以从主屏幕进行的单独活动。当我启动计时器并按回以返回主屏幕时,计时器仍处于活动状态。我知道这一点,因为当计时器用完时应用程序会振动我的手机。但是,如果我返回主屏幕,然后按按钮进入计时器活动,屏幕看起来好像计时器没有运行。就像创建了一个新活动一样,好像我可以同时运行多个计时器一样。
这是onCreate()
TimerActivity.class
代码
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_timer);
createComponents();
setFont();
setTimes();
buttonFunction();
我的猜测是setTimes()
函数可能会重置屏幕看起来好像计时器没有运行,但我不知道如何修复它。无论如何,这只是一种预感。这是代码:
public void setTimes() {
min1s = String.format("%02d", min1);
sec1s = String.format("%02d", sec1);
min2s = String.format("%02d", min2);
sec2s = String.format("%02d", sec2);
min3s = String.format("%02d", min3);
sec3s = String.format("%02d", sec3);
min4s = String.format("%02d", min4);
sec4s = String.format("%02d", sec4);
min5s = String.format("%02d", min5);
sec5s = String.format("%02d", sec5);
min6s = String.format("%02d", min6);
sec6s = String.format("%02d", sec6);
study1textM.setText(min1s);
break1textM.setText(min2s);
study2textM.setText(min3s);
study1textS.setText(sec1s);
break1textS.setText(sec2s);
study2textS.setText(sec3s);
break2textM.setText(min4s);
study3textM.setText(min5s);
break3textM.setText(min6s);
break2textS.setText(sec4s);
study3textS.setText(sec5s);
break3textS.setText(sec6s);
}
min1-6 and sec1-6 are just ints with the default timer values, and the `textM` and `textS` are just EditTexts.
你可能会说,我不知道如何解决这个问题。任何帮助将不胜感激。
答案 0 :(得分:0)
您应该在活动中实现onSaveInstanceState(Bundle savedInstanceState)来保存您的特定数据。并且在onCreate()期间恢复已保存的数据,如果已保存的事件状态'你收到的是'null。
有关详细信息,请参阅文档http://developer.android.com/training/basics/activity-lifecycle/recreating.html#SaveState