"State"在安卓片段中意味着什么



在 android 中,我们一直在谈论保留活动状态/片段状态,但我有一个问题,"状态"到底是什么意思。例如,假设我有以下对话片段

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"是否考虑了我在创建此片段时必须保留并投入论证的状态?

在设备轮换中,当前可见的活动将被销毁。 某些小部件(如 DialogFragment(会保存和恢复自己的状态。

处理配置

活动生命周期

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

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

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

最新更新