Android - 检测 Activity 是否因屏幕方向改变而启动

标签 android android-intent android-fragments android-activity android-actionbar

有没有一种合理的方法可以检测 Activity 是由于屏幕方向更改而重新启动,还是仅仅因为 Intent 到达而启动?

在我的应用程序中,我有一个包含两个 FragmentFragmentActivity。用户可以使用 ActionBar 选项卡在这些 Fragment 之间导航。 还规定此 ActivityIntent 可以携带一个 EXTRA,该 EXTRA 可以保存要选择的默认选项卡的指示器。因此,当 Activity 启动时,可以默认选择两个选项卡中的任何一个,由 EXTRA 决定。

当用户从默认选择的选项卡导航到另一个选项卡时,就会出现问题。在旋转更改时,Activity 重新启动,使默认选项卡再次从 EXTRA 中选择,而不是选择用户导航到的选项卡。

最佳答案

通过onSaveInstanceState发送选中的tab名称

protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putString("tabName", "tab1");
}

并在onCreate中获取值

if (savedInstanceState != null) {
            String tabname = savedInstanceState.getString("tabName");
        }

关于Android - 检测 Activity 是否因屏幕方向改变而启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12368627/

相关文章:

安卓 Gradle : can't find symbol variable

android - 在 SecondActivity 完成后不调用 onActivityResult()

java - Android Intent.getStringExtra() 在 Broadcastreceiver 中返回 null

android - fragment 上的 ListView

在选项卡更改时调用 Android fragment oncreateview

java - fragment 布局问题

带有进度对话框取消的 Android AsyncTask

android - 自定义EditText settext不设置文本

android - 如何在产品 flavor 中使用不同的启动器 Activity ?

javascript - WebExtensions 和 Firefox Android : How to get a BrowserApp object