1

在我的应用程序的主要活动中,我有三个选项卡,单击它们时,会将活动的 contentView 切换到不同的布局。我的问题是,当方向改变时,会自动选择第一个选项卡并加载第一个布局。

我对如何解决此问题的第一个想法是将选项卡位置保存在 savedInstanceState 或 sharedPrefs 文件中,但其中一个解决方案的问题是它们也会在首次打开应用程序并调用 OnCreate() 时发生.

明确地说,我希望发生以下情况:

  • 在应用程序加载时(新活动,调用 onCreate())- 始终加载第一个选项卡
  • 在应用恢复时(应用暂停后,调用 Onresume())- 加载最后打开的选项卡
  • 方向更改时(更改后,调用 OnCreate() 吗?)- 加载最后打开的选项卡

基本上,我试图找到一种方法来区分方向变化(女巫调用 OnDestroy() 和 onCreate())以及应用程序首次启动时的 onCreate() 和 onDestory()。

如果可能的话,我宁愿不在清单中的 configChanges="orientation" 行,而是自己处理开关,因为我听说在处理不同的屏幕尺寸和密度等时会导致问题。

有什么办法可以做到这一点,还是我必须适应不同的行为?

4

1 回答 1

2

onSaveInstanceState是正确的方法。活动完成后它不会持续存在,只有当它“进入后台状态”或进行方向更改时。

于 2012-08-12T00:03:20.447 回答