如何重新打开Android活动才能找到它?

时间:2014-11-30 19:25:08

标签: java android lifecycle

我曾尝试对活动生命周期进行研究,但我似乎无法找到我正在寻找的东西(或者我只是不理解它。)我已经构建了一个计时器应用程序实际计时器不是主要活动,而是可以从主屏幕进行的单独活动。当我启动计时器并按回以返回主屏幕时,计时器仍处于活动状态。我知道这一点,因为当计时器用完时应用程序会振动我的手机。但是,如果我返回主屏幕,然后按按钮进入计时器活动,屏幕看起来好像计时器没有运行。就像创建了一个新活动一样,好像我可以同时运行多个计时器一样。

这是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.

你可能会说,我不知道如何解决这个问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您应该在活动中实现onSaveInstanceState(Bundle savedInstanceState)来保存您的特定数据。并且在onCreate()期间恢复已保存的数据,如果已保存的事件状态'你收到的是'null。

有关详细信息,请参阅文档http://developer.android.com/training/basics/activity-lifecycle/recreating.html#SaveState