我知道这是一个已知的错误,并且已经登录到Google。我还浏览了SO上现有的帖子,但是提到的解决方法对我来说不起作用,因此请检查我是否做错了事。
因此,我的应用程序的布局方式是,我有一个主活动(谁是启动器),然后登录活动,一旦用户完成登录,主活动就会回来显示一个片段。问题是当我启动应用程序时,出现主活动,然后按一个按钮,然后出现登录活动。现在,当我回到后台并返回时,将显示主要活动,而不是登录活动。
以下是我在主要活动的onCreate中尝试的两种解决方法,但是没有用:
if (!isTaskRoot
&& intent.hasCategory(Intent.CATEGORY_LAUNCHER)
&& intent.action != null
&& intent.action == Intent.ACTION_MAIN) {
finish()
return
}
if (!isTaskRoot && intent.flags != null && Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT != 0) {
finish()
return
}
Android清单文件:
<activity
android:name=".MainActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustNothing"
android:launchMode="singleTask"
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/testApp.*" />
</intent-filter>
</activity>
<activity
android:name=".SignInActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
要显示登录活动:
startActivityForResult(Intent(this, SignInActivity::class.java), 123)
我在做错什么吗?我还能尝试什么吗?