gpt4 book ai didi

java - 如何仅在应用程序启动时调用方法?请查看详情

转载 作者:行者123 更新时间:2023-11-29 04:44:38 26 4
gpt4 key购买 nike

我有一种方法可以从 firebase 数据库中获取用户的详细信息和一些数据。

问题是该方法在启动应用程序后被调用两次或三次,当我从任何其他 Activity 导航回来时又被调用一次。

我已经将该方法放在 onCreate 方法中,如下所示:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

checkAuthState();
}

我确定我没有在 onStart()onResume() 方法中调用 checkAuthState()

这就是我从其他 Activity 返回的方式:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}

请告诉我为什么 checkAuthState() 被调用三次,为什么在从任何其他 Activity 导航回来时再次调用它,以及如何在应用程序启动时只调用一次此方法?

抱歉,如果问题格式不正确。我还是个初学者!

最佳答案

将您的 onCreate() 方法更改为

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
if(savedInstanceState == null){
checkAuthState();
}

}

关于java - 如何仅在应用程序启动时调用方法?请查看详情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37734696/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com