gpt4 book ai didi

android - 向上导航和 singleTop 启动模式

转载 作者:行者123 更新时间:2023-12-04 00:39:07 25 4
gpt4 key购买 nike

我有一个 Activity A,当我按下工具栏项时,它会使用 startActivity(intent) 启动 Activity B。每当我按下后退按钮或向上导航图标时,它都会关闭我的应用程序。我相信这是因为我在我的父 Activity 中使用了 launchMode="singleTop"(我使用它是因为我有一个搜索 View 和一个可搜索的配置,因为我不想启动我的 Activity 的另一个实例进行搜索).所以问题是:如何在不关闭我的应用程序的情况下使用向上导航和后退按钮从子 Activity (B) 返回到父 Activity (A)?我搜索了一下,发现了一些关于 onNewIntent() 的信息。如果这是我的解决方案,我应该如何正确使用它?


这是我的 list 文件:

        <activity
android:name="com.example.fernando.inspectionrover.MainActivity"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.SEARCH" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable" />
</activity>
<activity
android:name="com.example.fernando.inspectionrover.BluetoothSettingsActivity"
android:parentActivityName="com.example.fernando.inspectionrover.MainActivity"
android:screenOrientation="landscape">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.fernando.inspectionrover.MainActivity" />

以下是如何开始我的新 Activity :

switch (id) {
case R.id.bluetoothActivity:
Intent switchActivity = new Intent(this, BluetoothSettingsActivity.class);
startActivity(switchActivity);
Log.i(LIFE_CYCLE, "Switching from " + getLocalClassName() + " to Bluetooth Setting Activity");
finish();
break;
}

最佳答案

Single Top 意味着如果您启动一个已经在顶部的 Activity,它不会再次创建,只是恢复。

您的后退导航关闭应用程序的原因是因为您在开始新 Activity 后立即调用 finish()。这意味着您不再需要该 Activity ,因此它已从堆栈中删除。如果您返回 activityB,应用程序将关闭,因为没有什么可以返回(您调用了 finish() 还记得吗?

关于android - 向上导航和 singleTop 启动模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36294144/

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