应用程序从深层链接启动,然后从启动器再次激活重新启动活动

时间:2018-03-16 15:48:02

标签: android android-activity deep-linking

以下情况:

  • app从深层链接(短信)启动并启动MainActivity
  • 用户按下打开SecondActivity的应用程序中的开始按钮
  • app进入后台
  • 用户在启动器中再次按下应用图标=>在这里我期望SecondActivity仍然活跃。但相反,MainActivity重新启动。

尝试使用“singleTop”活动模式 - 没有区别。

SecondActivity是从MainActivity启动的,没有任何特殊的意图标志,简单的startActivity()

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:screenOrientation="portrait"
    android:alwaysRetainTaskState="true"
    android:launchMode="singleTop"
    android:windowSoftInputMode="adjustResize">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE”/>

2 个答案:

答案 0 :(得分:0)

启动secondActivity时,您只需在firstActivity中调用finish()(例如在onPause()buttonClick() firstActivity中)。这样,您的应用程序仍在运行(即secondActivity)。当您启动应用程序时,secondActivity应该直接运行(如果应用程序尚未完全销毁)。

答案 1 :(得分:0)

原来有两个原因:

  1. 从深层链接启动应用创建了应用的单独实例=&gt;通过指定“singleTask”
  2. 解决
  3. SecondActivity在某些时候被破坏,这解释了为什么从icon再次启动应用程序会带来MainActivity屏幕
  4. 感谢所有评论者提供的有用提示!