我正在开发一个有2个启动方法的android应用程序。 按下手机上的应用程序图标即可正常使用。 另一种方法是从网站的深层链接。Android:最近开始不正确的活动
深度链接还发送应用程序需要做的一些“东西”的一些数据。但是,这应该只做一次。 深度链接活动完成后,开始主要活动。但是,当我按下(在设备上)并从最近打开应用程序时,它会再次打开深层链接活动。
我可以从清单中的最近值中排除深层链接活动。这也排除了最近的应用程序的主要活动,这不应该是这样。
如何防止从最近的应用程序开始的深度链接活动?
我的清单:
<activity
android:name="MainActivity"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:launchMode="singleTask"
android:theme="@style/AppTheme">
</activity>
<activity
android:name="DeeplinkActivity"
android:label="@string/app_name"
android:noHistory="true"
android:screenOrientation="portrait"
android:launchMode="singleTask"
android:theme="@style/AppTheme">
<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="app_name" android:host="test" />
</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="test" android:path="/" android:scheme="app_name" />
</intent-filter>
</activity>
要切换到我做了以下在MainActivity:
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
编辑: 这个帖子被标记为与复制:Android: Starting app from 'recent applications' starts it with the last set of extras used in an intent
但是该职位是关于同样的活动。我想改变根活动,所以当我从最近开始的应用程序它不启动DeeplinkActivity。是的,作为解决方法我可以检查Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY标志。但是,每次用户从最近开始应用程序时,DeeplinkActivity都会打开,而不再需要它。
设置和或清除aditional意图值似乎不起作用。我使用getIntent()的信息getData()
如果你仍然觉得这是一个重复请解释。
我重新提出了这个问题。 –