从深度链接开始活动,然后从最新运行的活动中按恢复

时间:2019-04-04 13:16:43

标签: android deep-linking intentfilter deeplink

我正在处理我的应用程序中的深层链接。单击电子邮件中的链接后,它将在应用程序中打开相关活动。按下后,它可以返回到电子邮件或首页(最多使用我使用的意图标志)。 我需要它返回最新运行活动(如果在单击电子邮件中的链接之前正在使用该应用程序),或者(否则)请转到第一个活动以重新启动该应用程序。

更清晰:用户处于活动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");

1 个答案:

答案 0 :(得分:0)

要实现此目的,您需要处理来自常见活动的深层链接。 (例如:如果您的应用具有常见活动,例如XYZ。则每个深层链接都应进入XYZ活动,然后根据深层链接的参数,应移至相应的屏幕。)此外,还需要将XYZ设置为singleTask。 / p>