【发布时间】:2016-06-09 19:31:43
【问题描述】:
我有一个方法可以从 firebase 数据库中获取用户的详细信息和一些数据。
问题是该方法在启动应用程序后被调用两次或三次,当我从任何其他活动导航回来时再次被调用。
我已经将该方法放入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()。
这就是我从其他活动返回的方式:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
请告诉我为什么checkAuthState() 被调用三次,为什么在从任何其他活动返回时再次调用它,以及如何在应用程序启动后只调用一次此方法?
抱歉,如果问题似乎格式错误。我还是个初学者!
【问题讨论】:
-
stackoverflow.com/questions/3588682/… 的可能重复解决方案是使用 onSaveInstanceState 来跟踪身份验证状态
标签: java android android-intent onbackpressed