0

在我的应用程序中,我从 MainActivity 导航到 Activity B。然后按 HOME 按钮,然后再次单击应用程序图标以最大化它。

它不是 onResuming 我的 Activity B,而是回到 MainActivity。

这是有道理的,因为在我的 AndroidManifest.xml 中,当您单击其图标时,我使用普通的意图过滤器来启动 MainActivity:

    <activity
        android:name=".MainActivity"
        android:launchMode="singleTask"
        android:label="MyApp"
        android:windowSoftInputMode="adjustPan">

        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

    </activity>

我正在检查像 facebook 和 twitter 这样的流行应用程序,它们似乎都没有遇到这个问题 - 当您从 facebook 提要导航到朋友页面然后按 HOME 按钮时。然后您再次单击应用程序图标,它仍然在您朋友的页面上。

当我单击应用程序图标时,这似乎只会影响应用程序。例如,如果从 MainActivity 转到 Activity B,按 HOME 按钮,然后按 SQUARE 按钮以显示我在后台运行的所有应用程序,选择我在后台的应用程序再次最大化它,应用程序将正确返回到 Activity B.

我如何确保当您单击应用程序图标时,它是onResumesActivity B?

4

1 回答 1

0

android:launchMode="singleTask"从清单中删除

Android launchMode文档,

“singleTask”和“singleInstance”活动只能开始一个任务。它们始终位于活动堆栈的根部。此外,设备一次只能保存一个活动实例——只有一个这样的任务。

Android back stack singleTask doc,

系统创建一个新任务并在新任务的根部实例化活动。但是,如果活动的实例已经存在于单独的任务中,系统将通过调用其 onNewIntent() 方法将意图路由到现有实例,而不是创建新实例。一次只能存在一个活动实例。

注意:虽然活动在一个新任务中开始,但“后退”按钮仍将用户返回到上一个活动。

希望这会帮助你。

于 2016-01-01T10:17:18.673 回答