我在我的应用程序中处理深层链接。单击电子邮件中的链接后,将在应用程序中打开相关活动。在背面按下,它要么回到电子邮件或家里(直到我使用的意图标志)。我需要它回到最新的运行活动(如果在点击电子邮件中的链接之前使用该应用程序)或(否则)转到第一个活动以重新启动应用程序。
更清楚:用户正在进行活动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>
FirstActivity
if(getIntent().getData().toString().contains("keyword")){
//intent.setFlags(...);
intent.putExtra("myextra", getIntent().getData().toString());
}
startActivity(intent);
finish();
EmailResultActivity
String data = getIntent().getExtras().getString("myextra");
要实现这一目标,您需要处理来自常见活动的深层链接。 (例如:如果您的应用程序有一个共同的活动,请说XYZ。然后每个深层链接应该进入XYZ活动,然后根据深层链接的参数,您应该移动到相应的屏幕)此外,您需要将XYZ设置为singleTask。