【发布时间】:2019-08-26 06:28:34
【问题描述】:
我正在处理我的应用程序中的深层链接。单击电子邮件中的链接时,会在应用程序中打开相关活动。在后按时,它要么返回电子邮件,要么返回主页(取决于我使用的意图标志)。 我需要它返回到最新运行活动(如果在单击电子邮件中的链接之前正在使用该应用程序)或(否则)转到第一个活动以重新启动应用程序。
更清楚一点:用户正在进行活动 C。电子邮件通知来了,检查它并单击里面的链接。它会打开活动 E。在这里,如果用户回按,我想结束当前任务并恢复 活动 C - 如果活动 C 任务尚未被系统杀死。如果被杀死,请转到活动 A。
在没有意图标志的情况下,它会创建一个新任务(第二个应用程序实例),并在按下后返回电子邮件客户端。 使用 NEW_TASK 标志,新任务开始。如果我对此使用 CLEAR_TASK 标志,则在后按时它会回家。
清单
<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="https"
android:host="www.mysite.com"
android:pathPattern="/mypath/*" />
</intent-filter>
第一个活动
if(getIntent().getData().toString().contains("keyword")){
//intent.setFlags(...);
intent.putExtra("myextra", getIntent().getData().toString());
}
startActivity(intent);
finish();
EmailResultActivity
String data = getIntent().getExtras().getString("myextra");
【问题讨论】:
-
这个链接会帮助你medium.com/@muratcanbur/…
-
感谢您的链接。我以前也看过,但没有回答我的问题。但是,我用了另一种方式,再次感谢!
标签: android deep-linking intentfilter deeplink