我在Google Play商店中有一个应用。我在这里发现了一个有趣的错误-当我将应用程序发送到后台(按主屏幕),然后再次单击应用程序图标时,它将打开主屏幕。
我阅读了有关它的文章(https://medium.com/@elye.project/three-important-yet-unbeknown-android-app-launcher-behaviors-part-2-139a4d88157),尝试了所有应用程序状态,但是行为保持不变。但是,如果我打开我的ADB应用程序(或从Studio),则一切正常。
该如何解决?我的清单文件如下所示:
<uses-feature
android:name="android.hardware.touchscreen.multitouch"
android:required="false" />
<uses-feature
android:name="android.hardware..accelerometer"
android:required="true" />
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<application
android:name=".MyApplication"
android:launchMode="singleTop">
<activity
android:name=".ui.main.MainActivity"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<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:host="signin"
android:scheme="appprefix" />
</intent-filter>
</activity>
<activity
android:name=".ui.view.Acitivity2"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait"
android:launchMode="singleTop"/>
<activity
android:name=".ui.view.Acitivity3"
android:configChanges="orientation|screenSize"
android:screenOrientation="portrait"
android:launchMode="singleTop"/>
答案 0 :(得分:0)
针对市场发布的可能解决方法。市场在其他活动之上启动主要活动。我们从不希望这种情况发生。相反,我们应该检查我们是否是根,如果不是,则完成当前操作。在启动器活动onCreate()上添加以下代码
if (!isTaskRoot()) {
final Intent intent = getIntent();
if (intent.hasCategory(Intent.CATEGORY_LAUNCHER) &&
Intent.ACTION_MAIN.equals(intent.getAction())) {
finish();
return;
}
}