什么"状态"在Android片段中表示

时间:2017-08-02 19:51:38

标签: android

在android中,我们一直在谈论保留活动状态/片段状态,但我有这个问题," state"确实如此。例如,假设我有以下DialogFragment

public class Dialog extends DialogFragment {
  private String mMessage;

  @Override
  public void onCreateView(LayoutInflater inflater,
                           ViewGroup container,
                           Bundle savedInstanceState) {
     View v = super.onCreateView(inflater, container, savedInstanceState);
     ((TextView) v.findViewById("message")).setText(mMessage);
  }
} 

但不会" mMessage"在设备轮换期间保留为成员变量?所以在这种情况下," mMessage"我认为在创建这个片段时我必须保留并进行论证?

2 个答案:

答案 0 :(得分:1)

在设备旋转时,将销毁当前可见的活动。一些小部件,如DialogFragment,可以保存和恢复自己的状态。

Handling Configuration

Activity Lifecycle

答案 1 :(得分:0)

State的概念来自OOP,而不是来自android,简化:对象具有状态(数据)和行为(代码)。

碎片和活动的工作方式略有不同,如果碎片被停止,碎片将保留状态,但是它们将失去管理它们的活动被破坏(除非你保留它)。但是,在更改配置后,活动将失去状态。

该文档解释了生命周期以及如何/何时保留片段: https://developer.android.com/guide/components/fragments.html#Lifecycle

相关问题