Android 从应用商店下载时多次启动应用程序

Android 从应用商店下载时多次启动应用程序,android,android-activity,Android,Android Activity,我在play store上有一个应用程序,当下载到设备上时会导致问题。假设我点击我的启动器上的启动器图标打开应用程序,然后从抽屉中点击应用程序。该应用程序已启动2个实例。如果我点击谷歌商店(open),它会启动3个实例。我如何解决这个问题 我解决的第一个方法,但不是最好的解决方案。我在没有显示主题的情况下执行了第一个要启动的活动mode=“singleinstance”,此第一个活动将带您启动。因此,当我单击我的应用程序启动程序图标、抽屉或谷歌商店时,它将始终打开第一个活动,然后,如果应用程序未

我在play store上有一个应用程序,当下载到设备上时会导致问题。假设我点击我的启动器上的启动器图标打开应用程序,然后从抽屉中点击应用程序。该应用程序已启动2个实例。如果我点击谷歌商店(open),它会启动3个实例。我如何解决这个问题

我解决的第一个方法,但不是最好的解决方案。我在没有显示主题的情况下执行了第一个要启动的活动mode=“singleinstance”,此第一个活动将带您启动。因此,当我单击我的应用程序启动程序图标、抽屉或谷歌商店时,它将始终打开第一个活动,然后,如果应用程序未打开,它将带您进入启动屏幕;如果应用程序已打开,它将带您进入屏幕

我解决问题的第二个方法是在我的应用程序标签launchmode=“singletop”中设置,这在测试在启动器和抽屉之间打开应用程序时起作用。但当我从play store中单击打开应用程序时,它不起作用,当我从play store中单击打开时,它打开了我的应用程序一次。。。在我点击我的启动器后,它会打开我的App2实例

第一种解决方案

第二种解决方案



你能解释一下为什么singleInstance对你来说不是最好的解决方案吗。singleinstance不是最好的解决方案,因为在开始时,我正在打开一个没有显示主题的活动。因此,打开应用程序的速度会慢几毫秒。至于另一个问题,我在很多应用程序中都看到了这个bug。我有时会打开2-3个实例。如果你想要一个总代码检查木工工具。当你上传到商店并点击打开谷歌play商店时,它将启动一个应用程序实例,然后当我点击启动程序中的应用程序时,它将启动第二个实例。
  <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>