在我的应用程序中,我从MainActivity导航到Activity B。然后按下HOME按钮,然后再次单击应用程序图标以最大化它。
它不是继续我的活动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订阅源导航到朋友页面,然后按下主页按钮时。然后你再次点击应用程序图标,它仍然在你朋友的页面上。
这似乎只会在我点击应用程序图标时影响应用程序。例如,如果从MainActivity转到Activity B,按HOME按钮,然后按SQUARE按钮以显示我在后台运行的所有应用程序,选择我在后台的应用程序以再次最大化它,应用程序将正确返回到Activity B。
如何确保当您单击应用程序图标时,它是onResumes
活动B?
从清单中删除android:launchMode="singleTask"
从Android启动模式文档,
"singleTask";以及";singleInstance";活动只能开始一项任务。它们始终位于活动堆栈的根。此外设备一次只能容纳一个活动实例——只有一个这样的任务。
来自安卓后台单任务文档,
系统创建一个新任务,并在新任务的根。但是,如果活动的实例已经存在于单独的任务中,系统将意图路由到通过调用其onNewIntent()方法而不是创建一个新实例。只有一个活动实例可以同时存在。
注意:尽管活动是在新任务中开始的,但"上一步"按钮仍然将用户返回到上一个活动。
希望这对你有帮助。