通过单击应用程序图标(来自后台)打开时反应本机android应用程序重新启动
Posted
技术标签:
【中文标题】通过单击应用程序图标(来自后台)打开时反应本机android应用程序重新启动【英文标题】:react native android app restarts when opened by clicking app icon (coming from background) 【发布时间】:2021-04-30 01:04:06 【问题描述】:我通过点击图标打开我的应用,做某事并转到另一个组件,通过点击主页按钮暂停应用。
如果我通过再次单击图标打开我的应用程序,应用程序将重新启动并运行第一个组件。
如果我从最近打开的应用程序中打开我的应用程序(在 4.0 中通过按菜单按钮并选择我的应用程序),应用程序将重新启动并进入第一个组件。
我希望行为 2 始终发生,不希望我的应用每次通过单击图标打开时都重新启动。
我希望我的应用只重启一次(当应用被终止时),另一次我的应用不重启。
我在谷歌搜索了很多次并获得了一些信息并设置但无法正常工作。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="...">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.front" android:required="false" />
<application
android:name=".MainApplication"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:allowBackup="false"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
我在清单文件中的活动是android:launchMode="singleTop"
,但对我不起作用! :(
我的反应原生应用信息:
"dependencies":
"@react-native-community/async-storage": "^1.11.0",
"@react-native-community/clipboard": "^1.2.3",
"native-base": "^2.13.8",
"react": "16.9.0",
"react-dom": "^16.9.0",
"react-is": "^16.9.0",
"react-native": "^0.61.5",
"react-native-gesture-handler": "^1.5.1",
"react-native-highcharts": "^1.0.2",
"react-native-reanimated": "^1.4.0",
"react-native-responsive-screen": "^1.3.0",
"react-native-screens": "^2.16.1",
"react-native-webview": "^7.6.0",
"react-navigation": "^4.0.10",
"react-navigation-drawer": "^2.3.3",
"react-navigation-material-bottom-tabs": "^2.3.3",
"react-navigation-stack": "^1.10.3",
"react-navigation-tabs": "^2.6.0",
"react-redux": "^7.2.1",
"realm": "^10.1.2",
"redux": "^4.0.5",
"redux-persist": "^6.0.0",
【问题讨论】:
【参考方案1】:可能有很多事情,我在一个项目中工作,我们使用了太多的设备内存,当用户在几秒钟内将应用程序置于后台时,应用程序被杀死,所以它可能是内存使用情况设备中的应用程序。在 android 文档中查看此页面。它更详细地讨论了android背景流程。
【讨论】:
感谢老兄的回答,但是当 ram 空闲时我的问题(后台没有应用程序并且所有应用程序都关闭)也发生了!这个问题发生在特殊设备上,不是所有的安卓设备:( 但是即使所有应用程序都关闭了,您的应用程序也可能被杀死。当您在这个“特殊”设备中运行其他应用程序时,它也会在后台被杀死?看看android的docs,讲后台限制。 谢谢我的朋友,但我知道该怎么做:(【参考方案2】:将您的MainActivity
的启动模式替换为android:launchMode="singleTask"
【讨论】:
以上是关于通过单击应用程序图标(来自后台)打开时反应本机android应用程序重新启动的主要内容,如果未能解决你的问题,请参考以下文章
Stack Navigator 抽屉图标单击抽屉未打开但滑动打开时
通过应用程序图标打开时的 UILocalNotification 句柄?