Android Activity:在哪里初始化参数?

Android Activity: Where to initialize parameters?

我有一些变量在 activity 生命周期中必须只初始化一次。 如果我在 OnCreate 方法中初始化它们,如下所示:

ArrayList<Integer> numbers = new ArrayList<>();
protected void onCreate(Bundle savedInstanceState) {
    numbers.add(1);
    numbers.add(2);
    numbers.add(3);
}

每次有一些配置更改(如屏幕旋转等)时都会发生初始化过程,因为它们会一次又一次地调用 OnCreate

我不会禁用屏幕旋转等配置更改来解决此问题,但我想知道在哪里放置我的初始化,初始化在 activity 生命周期中只发生一次。

initialization process happens every time which there are some configuration changes like screen rotation and etc since they will call OnCreate again and again.

那是因为它是一个新的 activity 实例。默认情况下,如果您不初始化任何字段,它们将是 null

欢迎您使用保存的实例状态 Bundle、保留的片段或其他技术来保留该数据。

这就是我认为你可以做的:

//create a method to run once;

private void initParameters(){

   //do your thing here
}

接下来,创建一个在首选项中设置标签的方法

private void updatePreferences(){
  //now set a tag that indicates that params have been initialized

  ....
}

现在,在 onCreateonResume

//check prefernces
if(!initialized){
   //init here your params!
}

我希望这能给你一个想法!