android - Android - 侧载应用程序会保持应用程序状态,但从 Play 商店/曲棍球应用程序重新下载不会
问题描述
我注意到我的应用程序中有一个奇怪的行为,不确定是什么原因造成的,或者在哪里寻找或从哪里开始调查。
所以我的主要活动称为另一个活动登录活动。我的登录活动有 2 个布局,即布局 A 和布局 B。一旦我启动应用程序,就会显示布局 A,当我单击布局 A 上的按钮时,布局 A 会被隐藏,而布局 B 会显示。
侧载应用程序:
在侧载期间,如果我在布局 B 上并转到后台并返回应用程序,应用程序仍会启动布局 B,我注意到 onStart 方法在 SignIn Activity 上被调用。
从 HockeyApp 或 PlayStore 下载:
在下载的应用程序上,如果我在布局 B 上并转到后台并返回,应用程序将显示布局 A,即它不保持状态并从 onCreate 开始再次经历整个活动生命周期。但是,如果我手动强制停止应用程序并尝试相同的场景,那么它将表现得像一个侧面加载的应用程序,即它在从后台进入后保持应用程序状态。
我不确定是什么导致了这种行为。有没有人经历过这样的行为?
从 AndroidManifest 文件中添加围绕这两个活动的逻辑。
<activity
android:name=".MainActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustNothing"
android:launchMode="singleTop"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="test-app" />
<data android:host="loc" />
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
<data android:scheme="http" />
<data android:host="*" />
<data android:pathPattern="/.*/apps/test.*" />
</intent-filter>
</activity>
<activity
android:name=".SignInActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
解决方案
推荐阅读
- bash - 在 VS Code 任务中使用 .bash_profile 函数
- php - php在while中从上到下从json数据插入mysql
- ios - 如何获取位置 UIImageView。UIImageView 有很多
- docker - 在 Linux Alpine 上安装 DPDK 时出错
- c - 读取远程 PC 的 SMBIOS
- python - 将所有“输入”项目变成一个列表。
- odata - Dynamics CRM WEB API - 从实体参考中选择字段
- excel - Excel VBA - 运行时错误“438”。对象不支持此属性或方法
- javascript - 使用 jQuery 创建的元素跳到内容
- javascript - 根据所选选项隐藏和显示不同列中的 DIV