问题的简短版本:如何可能,我的活动在开始第二个活动时执行OnDestroy,然后在关闭新活动(并且崩溃)后执行OnResume
我在我的应用程序的生命周期中有一个非常令人困惑的行为,它有点复杂但在这里事实:
它是一个带有以下intent-filters的片段活动:
<intent-filter>
<data android:scheme="http" android:host="myhost.de"></data>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
在活动中,我可以开始第二项活动:
Intent LaunchIntent = main_fa.getPackageManager().getLaunchIntentForPackage("de.myhost.calendar");
main_fa.startActivity(LaunchIntent);
在这个新的Activity中,可能存在来自上面的intent过滤器的主机host =“myhost.de”的链接。现在我做以下事情:
我从第一个活动开始第二个活动,即第一个活动的生命周期: 停止 如果我关闭第二个活动,我的第一个活动: ON RESUME
到目前为止一切顺利,但是如果我在第二个活动中单击链接,则第一个活动将从几个参数开始并执行生命周期: ON CREATE(不做任何破坏)
但是现在,如果我第二次开始第二次活动,我的第一次活动就会执行: 停止 在摧毁
如果我关闭第二个(不使用链接)我的第一个将执行 在简历 因为无法恢复被破坏的活动而崩溃......
为什么会发生这种情况以及如何避免这种情况?