【问题标题】:Start activity from deeplink and on back press resume from latest running activity从深层链接开始活动,并从最新运行的活动中恢复
【发布时间】: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


【解决方案1】:

要实现这一点,您需要处理来自常见活动的深层链接。 (例如:如果您的应用程序有一个共同的活动,比如说 XYZ。那么每个深层链接都应该来到 XYZ 活动,然后根据深层链接的参数,您应该移动到相应的屏幕)此外,您需要将 XYZ 设为 singleTask。

【讨论】:

  • 谢谢你,@Jatin。我的设计目前就像你说的那样,但客户方在没有任何中介活动的情况下要求它。但在你回答后,我再次联系他们,他们承认了。
猜你喜欢
  • 1970-01-01
  • 2021-06-08
  • 1970-01-01
  • 2020-04-07
  • 1970-01-01
  • 2018-08-25
  • 1970-01-01
  • 2015-06-14
  • 1970-01-01
相关资源
最近更新 更多