如何使用OnPause方法

时间:2015-07-13 16:33:01

标签: android

如何在onPause()方法中更改从EditText加载的按钮文本?

例如

@Override
public void onPause(){
    button.setText(text.getText().toString());
    super.onPause()
}

当我按后退按钮时,它不会改变按钮文本

2 个答案:

答案 0 :(得分:0)

暂且不考虑为什么要在onPause()中首先执行此操作...

通常情况下,您的观看状态会保存在onSaveInstanceState(...)中。但根据the docs,无法保证对onSaveInstanceState(...)的调用是在调用onPause()之前还是之后发生的。如果在onSaveInstanceState(...)之前调用onPause(),则您在onPause()中所做的任何更改都将丢失。

答案 1 :(得分:0)

请阅读documentation - 它描述了具有出色图表的Android活动流程 onPause()已经是您活动中的现有方法,因此您需要@Override它。除非你修改了后退按钮的行为 - 这是发生的事情:

  • onPause()在您按下时执行,并且按钮文本被替换(假设文本和按钮在此范围内可见) - 在如此短的时间内,您将无法注意到(除非设备滞后,无论如何)
  • onStop()接下来执行,并且您的应用程序在
  • 之后不久退出

如果您想尝试检查文本是否设置正确 - 您可能会发现更容易编写:

@Override
public void onPause(){
    super.onPause();
    Log.d("Text's text:" + text.getText().toString()
          + "Button:" + button.getText().toString());

}

您需要导入android.util.Log 另请注意,强烈建议(here)在覆盖Android默认方法时首先调用super()作为第一件事。