首页 > 解决方案 > 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" />

标签: androidkotlin

解决方案


推荐阅读