【问题标题】:Expected behaviour of a task updating UI if onPause and onResume is not implemented如果未实现 onPause 和 onResume 任务更新 UI 的预期行为
【发布时间】:2014-03-20 09:14:58
【问题描述】:

假设我的 Activity 中有一个 TimerTask,用于 UI 中的自动收报机。每次调用 Timer 时,我都会获取 TextView 的值并将其递增 1。如果 onPause 和 onResume 实现并且我将进入后台并返回,那么 UI 中的预期行为是什么。当我在后台时,值会更新吗?

示例代码

public class home extends Activity {

private android.os.Handler mTimerHandler = new android.os.Handler();
private Timer mTimer;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_home);
    mTimer = new Timer();
    mTimer.schedule(getTimer(), 1, 1000);
}
private TimerTask getTimer() {

    final TextView counterView = (TextView) findViewById(R.id.counter);

    return new TimerTask() {

        public void run() {
            mTimerHandler.post(new Runnable() {
                public void run() {
                    long currentValue = Long.parseLong(counterView.getText().toString());
                    counterView.setText(String.valueOf(currentValue));
                }
            });
        }
    };
}

}

【问题讨论】:

  • “预期的行为是什么...” 抱歉 - 我在星期四不做读心术。请发布您的代码。
  • 对不起。我编辑了这个问题。
  • 你还没有发布任何代码。当Activity 不可见(肯定暂停,可能停止)时使用BroadcastReceiverTimerTask 之类的东西可能会或可能不会起作用。没有代码,没有人可以回答你的问题。它可能会按预期工作,也可能会崩溃和燃烧。如果系统资源不足,Activity 也有可能被破坏,然后它会被 GC'd。
  • 我更新了问题并添加了示例代码。
  • stackoverflow.com/a/58504433/5219642 了解更多详情,您可以查看此

标签: android android-lifecycle


【解决方案1】:

我在 onCreate 中有一个 BroadcastReceiver 和 TimerTask(都更新了 用户界面)。我很想知道如果 onPause 和 onResume 没有实现,我要后台再回来。

回调已实现。你通常override 并调用super(否则会抛出异常)。什么都不会发生。 super.onResume/super.onPause 将照常调用。你的BroadcastReceiver 会发生什么取决于你的实现

【讨论】:

  • 因此,如果我通过 TimerTask 在 UI 中每秒更新一个计数器。当我回来时,价值将是正确的?
  • 没有看到你的代码我应该怎么回答?
  • @blackbelt :您已经发布了答案,但没有看到任何 OP 的代码。
  • @Squonk,我确实认为我的回答满足了他的问题。至少这部分他很时髦:What is the expected behavior if onPause and onResume is not implemented and I am going background and coming back.
  • 我更新了代码并添加了示例代码。问这个问题时我没有代码。这只是我的好奇心。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-08
  • 1970-01-01
  • 1970-01-01
  • 2015-05-13
  • 1970-01-01
  • 1970-01-01
  • 2012-07-21
相关资源
最近更新 更多