有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android,ActionBar后退按钮(setDisplayHomeAsUpEnabled(true))重新创建父活动

我有两个活动,我们称它们为A和B,当我使用startActivity导航到活动B时,在活动B中,我使用getSupportActionBar()访问支持操作栏,然后我调用setDisplayHomeAsUpEnabled(true)在清单中显示为安卓.R.id.home返回按钮:

    <activity
        安卓:name=".activities.ActivityA"
        安卓:label="ActivityA"
        安卓:theme="@style/AppTheme.NoActionBar" />

    <activity
        安卓:name=".activities.ActivityB"
        安卓:label="ActivityB"
        安卓:parentActivityName=".activities.ActivityA"
        安卓:theme="@style/AppTheme.NoActionBar">
        <!-- The meta-data element is needed for versions lower than 4.1 -->
        <meta-data
            安卓:name="安卓.support.PARENT_ACTIVITY"
            安卓:value=".activities.ActivityA" />
    </activity>

因此,当我点击“硬件后退”按钮时,将被重新创建,当我点击安卓.R.id.home后退按钮时,将重新创建,现在有两种修复方法:

  1. 重写onOptionsItemSelected,如果是安卓.R.id.home,则调用finish()

  2. 较少的代码将安卓:launchMode="singleTop"与ActivityA一起使用,请注意onNewIntent被调用

我的问题:我不太喜欢第一种方法,我的问题是关于第二种方法,在onNewIntent中,我如何知道对onNewIntent的这个特定调用来自后退按钮而不是其他东西(例如,为了区分推送通知和其他调用,顺便说一句,我知道我可以为推送通知和其他东西设置数据,如果没有数据,那么无论如何都必须是这样),我是否必须再次覆盖onOptionsItemSelected并设置一些意图数据,是否还有其他内容


共 (0) 个答案