这个问题已经在类似的帖子中解决过,但是,我的情况有点不同。我只有一项活动和多个片段。我没有深入链接到特定的片段,我正在启动我的一项活动,然后重定向到不同的片段。我遇到的问题是,当单击深层链接时,应用程序的多个实例正在打开,并且当阻止应用程序的多个实例打开时,我会丢失深层链接意图中的数据。
我已经通过几种方式阻止了多个实例。一种是将 singleTop 添加到我的清单中
android:launchMode="singleTop"
这可以防止多个实例,但是,原始应用程序实例中的静态数据会丢失。另一种方法我也尝试过以下方法
// finishes activity if its not the root activity
if (!FrameworkUtils.checkIfNull(getIntent().getExtras())) {
if (!isTaskRoot()) {
finish();
}
}
使用此代码,我维护应用程序的原始实例,但我需要的深层链接的意图数据消失了,因为应用程序的新实例(我需要)被关闭。
我怎样才能解决这种情况,而不必创建额外的活动来启动,然后做类似的事情
Intent intent = getIntent();
String intentUrl = intent.getDataString();
Intent newIntent = new Intent(this, MainActivity.class);
newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
newIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
newIntent.putExtra("intentUrl",intentUrl);
newIntent.setAction(Long.toString(System.currentTimeMillis()));
startActivity(newIntent);
finish();
或者更确切地说,如何在用户单击深层链接后删除应用程序的原始实例并保留应用程序的新实例?提前致谢