gpt4 book ai didi

android - React Native Android,由于来自后台状态而同时运行的多个应用程序实例之前没有杀死应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:22:43 27 4
gpt4 key购买 nike

下面是重现错误的过程。

发生在我的项目 v0.29 中,但我刚刚在 v0.33 上测试了一个新的,它的行为方式相同。

当应用程序运行时,按下设备/模拟器的主页按钮并通过单击桌面图标打开应用程序,这里发生的是应用程序重新启动再次安装组件之前没有卸载它,导致如果多次执行此操作,应用程序的多个实例将运行。

enter image description here

然后,如果您按下设备后退按钮,它将终止并卸载最上面的实例,让您使用前一个实例,直到最后一个实例被卸载,然后它将转到桌面。

enter image description here

在此之后,如果您像最初按主页按钮那样退出应用程序并通过单击桌面图标打开它,这将不会重新启动应用程序再次安装它,从这一刻开始正常运行。同样,如果应用程序首次启动后您使用后退按钮将其退出,则之后主页按钮将正常运行。

同样以同样的方式,如果你实现一个像 react-native-activity-android 这样的包来避免在按下后退按钮时杀死应用程序,你最终会运行多个应用程序。

enter image description here

enter image description here

我不知道 android,当应用程序被杀死时会发生什么,在此之后如果您使用主页按钮将应用程序发送到后台它可以正常工作吗?

关于如何解决此问题的任何想法,以便将应用程序发送到后台并重新打开它不会安装多个应用程序?

如果我需要让应用程序在后台运行以用于位置/通知目的,假设我无法解决此问题,但我可以处理事件监听器,因此它们不会被多次执行。同时安装多个应用程序对性能/内存有多糟糕?

谢谢

最佳答案

此错误是由于 React Native 在每个应用程序中创建了多个 Activity ,导致多个根组件同时运行。

似乎对大多数人都有效的解决方案是在 AndroidManifest.xml 中将 launchMode 设置为 singleInstance,如下所示:

<manifest>
...
<application>
...
<activity ... android:launchMode="singleInstance">
</activity>
</application>
</manifest>

那里有更多信息:

https://github.com/facebook/react-native/issues/10266

https://github.com/facebook/react-native/issues/7079

关于android - React Native Android,由于来自后台状态而同时运行的多个应用程序实例之前没有杀死应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39657029/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com