我在Play商店有一个应用程序,在设备上下载会导致问题。假设我单击启动器上的启动器图标打开应用程序,然后我从抽屉中单击应用程序。该应用程序已启动2个实例。如果我从Google商店点击(打开),它会启动3个实例。我该如何解决这个问题?
第一种方式我解决了,但不是最好的解决方案。我做的第一个活动是launchmode =“singleinstance”没有显示主题,这个第一个活动带你去泼水。所以当我点击我的应用程序启动器图标,或从抽屉,或从谷歌商店,它将始终打开第一个活动,然后带你去如果应用程序未打开则启动屏幕,或者如果应用程序处于打开状态,则显示已经存在的屏幕。
我解决的第二种方法是,在我的应用程序标签中使用launchmode =“singletop”,这在测试打开启动器和抽屉之间的应用程序时起作用。但是当我点击从Play商店打开应用程序时,它没有用,当我点击从Play商店打开时,它打开我的应用程序一次......然后我点击我的启动器后打开我的应用程序2个实例。
第一个解决方案
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".FirstActivity" android:theme="@android:style/Theme.NoDisplay" android:launchMode="singleInstance" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SplashActivity" >
创建
内的第一个活动protected void onCreate(Bundle savedInstanceState) {//open splash activity}
第二个解决方案
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:launchMode="singleTop" android:theme="@style/AppTheme" > <activity android:name=".SplashActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>