奇怪的生命周期

时间:2013-08-30 13:16:41

标签: android android-lifecycle

  

问题的简短版本:如何可能,我的活动在开始第二个活动时执行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(不做任何破坏)

但是现在,如果我第二次开始第二次活动,我的第一次活动就会执行: 停止 在摧毁

如果我关闭第二个(不使用链接)我的第一个将执行 在简历 因为无法恢复被破坏的活动而崩溃......

为什么会发生这种情况以及如何避免这种情况?

0 个答案:

没有答案