防止新意图或切换应用程序破坏活动

Posted

技术标签:

【中文标题】防止新意图或切换应用程序破坏活动【英文标题】:Prevent a new intent or switching apps from destroying a activity 【发布时间】:2018-11-30 17:58:28 【问题描述】:

我有一个活动,我对以下函数 (onPause/onStop/onDestroy) 不执行任何操作。这就是您从头开始创建活动时的情况。

现在,当我切换到新应用或以新意图启动新活动时,活动将被销毁。 android系统调用onPause -> onStop -> onDestroy。

如何防止应用在该特定活动上调用 onDestory?

开始新活动的代码:

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
getApplicationContext().startActivity(intent);

清单代码:

    <activity android:name=".WebviewActivity">
    </activity>

如你所见,我里面什么都没有。

【问题讨论】:

你能用你用来开始第二个活动的代码更新你的问题吗? @Sagar 当然!谢谢。 您是否在 Manifest.xml 中为此活动设置了任何标志?你也没有在任何地方打电话给finish ()吗? 查看清单文件中的第一个活动启动模式以及用于启动第一个活动的意图标志。 android.jlelse.eu/android-activity-launch-mode-e0df1aa72242 @Segar,不,我从不在此活动中调用 finish()。此外,我还没有在清单文件中为此活动设置任何标志。 【参考方案1】:

确保您没有在开发者选项中意外启用“不保留活动”模式:

【讨论】:

【参考方案2】:

一般你不能,这些是Android环境调用的生命周期方法,你无法控制它。 Android 运行时决定何时调用这些方法。

您正在通过隐式调用启动 Activity,因此 android 运行时确定最适合它的 Activity,并且该 Activity 可能在其自己的堆栈中运行,这可能会导致 onDestroy 对您的 Activity 的调用,因为它不再可见。

Ankit

【讨论】:

以上是关于防止新意图或切换应用程序破坏活动的主要内容,如果未能解决你的问题,请参考以下文章

尽可能长时间地防止活动被破坏

Android:调用相机意图后活动被破坏

Android:调用相机意图后活动被破坏

Android:在通知时不会自动显示使用啥意图标志这样未破坏的活动

启动新意图后活动加载缓慢

在 onStop() 之后,带有线程的 Android 活动被破坏