android - 选择要打开的应用时,使用深度链接启动的 Activity 已完成
问题描述
我想实现深度链接,如果登录的用户打开链接,应用程序会启动一个活动,但对于未登录的用户,应用程序会在登录后启动登录活动(并将深度链接方案额外传递给该活动) ,应用程序重做深层链接并完成登录活动。
但问题是,当我完成登录时,登录活动在我完成“选择要打开的应用程序”提示之前就完成了。在打开先前预期的深度链接活动几秒钟后,导致活动被重定向到 MainActivity。
private fun redirectAfterLoggedIn() {
if (isOpenFromDeeplink()) {
openDeeplinkScheme()
} else {
openUserActivity()
}
}
private fun openDeeplinkScheme() {
viewModel.deeplinkScheme?.let { scheme ->
startActivity(Intent(Intent.ACTION_VIEW, Uri.parse(scheme)))
finish()
}
}
deeplinkScheme 变量是一个深度链接方案字符串,从以前的活动中检索
解决方案
移动finish()
到onActivityResult
活动中。
private fun openDeeplinkScheme() {
viewModel.deeplinkScheme?.let { scheme ->
startActivityForResult(Intent(Intent.ACTION_VIEW, Uri.parse(scheme)), 100);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == 100) {
// do some optional data manipulation
finish()
}
}
推荐阅读
- backup - scp 备份带有变量文件夹的路径
- javascript - 如何使用javascript获取应用于HTML元素的rotateY值?
- c# - 恢复多个数据库时,测试中止但没有抛出错误?
- react-native - BottomTabNavigator - 反应原生
- javascript - noscript 和禁用 javascript
- java - Spring Boot 应用程序不创建 .jar 文件
- flutter - 如何在网格视图中动态更改 childAspectRatio
- node.js - 如何解决问题 jquery 和 angular 等未找到?
- javascript - 数组按日期分组并重新映射对象
- c# - 如何生成 rand 继承类