Skip to content

【React-Native】Android 首次打开app切后台后总是会重启的问题 #10

@famousczm

Description

@famousczm

问题描述

开发过程中遇到一个问题,Android 的 App 在首次安装打开切后台回来后必定会执行启动图然后重新进入 App,这时首页内容没有数据,在 Logcat 看日志是有收到数据的,但就是没有显示出来。把整个 App 关闭掉再打开就再也没有出现这种现象了。多次测试后,发现没有显示数据的原因是出现了两个首页,第二个首页没有收到数据,究其原因都是因为这个首次安装切后台 App 重启的问题,这里的重启是指又生成了一个 MainActivity,所以导致两个 MainActivity 出现,如果反复多次切后台返回来的操作,数量会累加。本以为是这个项目哪里配置错了才会有这种问题,没想到是每个项目都有,而且发现一些流行的App里也存在这种问题。

解决方法

网上搜索了一下,很多人都遇到,这是 Android 的设计 bug 吧,大家提供的解决方法是判断当前启动页是否已经加载过,是的话就 finish 掉当前 Activity。对于原生 Android 开发的 App 的确是有效的,但是对于 React-native 来说只有一个 MainActivity ,finish 掉就白屏了,并不适用。我试过好多方法,唯一对我有效的是在 AndroidManifest 中 name='.MainActivity' 的 activity 项里加入 android:launchMode="singleTop",具体原因不明,目前也没发现有其它副作用

总结

这个问题可能就是很多偶发的严重bug的起因,之前一直重现不了现在可以回头去看看再去修复它们了

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions