问题标签 [registerforactivityresult]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
241 浏览

java - Android use object in registerForActivityResult

In my AppCompatActivity, I declared an ActivityResultLauncher. I used registerForActivityResult() to create it and passed a LambdaExpression for the ActivityResultCallback.

However, I need a reference to an object in this ActivityResultCallback, which I have when calling launch().

Example code:

I could just save the object in a private field, but is this what Android intents us to do?

I understand that Android does not want you to share objects between different activities. But here, the reference should only be kept in my MainActivity.class.

Any help is appreciated!

0 投票
0 回答
169 浏览

android - 在 react-native NativeModule 中使用时解析 registerForActivityResult 时出错

我正在创建一个 react-native 应用程序,在该应用程序中我需要从用户那里获得访问权限coarse-locationfine-location. 我在 android 中制作了一个 Native Module,并为此使用了新的 Activity Result API ActivityResultContracts.RequestMultiplePermissions

我在 build.grade 中添加了以下内容

我已将 ActivityResultLauncher 声明为 NativeModule 类的成员变量。

我正在检查并请求上述功能的许可。我打算在我的 react-native 屏幕中的 useEffect 挂钩中从我的 react-native 代码中调用askLocationPermission()函数。ReactMethod

我面临的问题是 android 无法找到 registerForActivityResult() 函数,并且在运行时出现以下错误npx react-native run-android

无法解析“BLEDeviceScanModule”中的方法“registerForActivityResult”

0 投票
0 回答
46 浏览

android - 将活动结果用于多种用途

我需要做两件事:-

  1. 一种从存储中选择文件
  2. 其次是请求发送短信的权限。

为此,我需要使用活动结果和活动结果合同。(这是新方法)

如何注册两个不同的合约?(选择文件并请求权限)

1.请求权限:

2.从存储中读取文件:

我怎样才能把这些放在一起?

谢谢!

0 投票
1 回答
813 浏览

android - 片段必须在创建之前调用寄存器 registerForActivityResult()

我正在开发购物应用程序,我创建了一个用于将产品添加到产品列表的片段。我需要获得读取外部存储权限才能将照片添加到产品,所以我尝试在我的片段中使用 registerForActivityResult() 并且我收到此错误。我是 android 编程的新手,所以我不知道我是否以正确的方式使用它。

我尝试了其他问题的所有答案,但它们也没有奏效。对不起,我的英语不好。谢谢你的帮助。

添加活动.kt:

0 投票
0 回答
104 浏览

java - onActivityResult 与 registerForActivityResult 有何不同?

  1. 实际上,以前我想从图库中挑选图像,所以我知道 onActivityResult 已被弃用,我们应该使用 registerForActivityResult()。所以我通过将 mime 类型定义为“image/*”来使用它,但现在我想从图库中导入 pdf,但没有这样的 mime 类型,我想了解这些 mime 的工作原理以及我如何通过以下方式完成我的任务registerForActivityResult() 方法
  2. 我还想了解我们如何将 someActivityResultLauncher 的数据类型定义为字符串?我想了解这整个事情是如何运作的……我们可以自己定义自定义 mime 类型吗?请帮助我

''' 包 com.parth.iitktimes;

0 投票
1 回答
296 浏览

android - registerForActivityResult 是否能够作为 ACTION_CHOOSER

我正在使用 registerForActivityResult 来启动相机或画廊,但是 registerForActivityResult 能够像 Intent.ACTION_CHOOSER 那样做吗?

以旧方式

0 投票
1 回答
373 浏览

android - 如何使用 ActivityResultContracts.CreateDocument() 添加意图类型

我正在使用以下代码在外部存储上创建文件

由于不推荐使用 startActivityForResult,我正在使用 ActivityResultContracts.CreateDocument()。但是我无法添加上面代码中显示为 type = "audio/*" 的意图类型

这是我的代码;

如何添加意图类型?

0 投票
0 回答
72 浏览

android - 从 registerForActivityResult(StartActivityForResult() 调用的启动电子邮件的意图未完成 RESULT_OK 上的活动结果

下面的所有代码都在 BackupRestoreActivity.kt

Intent 将数据库文件的副本附加到电子邮件中。数据库文件位于临时位置。电子邮件完成后,活动结果回调应开始从其临时位置删除数据库文件。

电子邮件在 Gmail 中创建,并附有备份文件。我发送电子邮件但当我的应用程序恢复时它不会在 BackupRestoreActivity 恢复(运行 ActivityResult 的 File.delete(),如上面的第一个代码块所示。)相反,我的应用程序在其主屏幕 MainActivity 恢复。文件删除不会发生。

我在 IDE 中使用 API 28 仿真,并使用设备文件资源管理器检查了文件位置。备份副本文件被创建。电子邮件步骤工作正常。任何关于为什么我没有成功使用 ActivityResult 的 File.delete() 的想法将不胜感激!

0 投票
0 回答
392 浏览

java - Android 11:无法从 startActivityForResult 或 registerForActivityResult 返回并启动

我有一个带有 MainActivity 和 SecondaryActivity 的应用程序。当 MainActivity 打开 SecondaryActivity 时,我需要用户从 MainActivity 中的列表中选择电话号码。我曾经用instartActivityForResult重新打开 MainActivity,以便 MainActivity 直接打开带有特定列表的片段,如下所示:extraintent

当用户单击该列表的一个元素时,我设置结果并完成 MainActivity 以返回 SecondaryActivity,如下所示:

到目前为止效果很好,但我注意到在 Android 11 设备中,我有两个问题:

  1. startActivityForResult直接在onResume()函数中启动 MainActivity 而不通过onCreate()函数,对于 Android 10 及以下设备。这迫使我在每次onResume()调用 MainActivity 的函数时检查是否有任何extra发送。对已经收费的 MainActivity 不必要地增加额外费用的东西。
  2. 我无法使用finish()! 取而代之的是,该应用程序只是关闭了。

我尝试使用新的 Activity Result API,更具体地说:registerForActivityResult,像这样(在 SecondaryActivity 中):

但是,这并没有改变我描述的两个问题:onResume()在 MainActivity 中直接调用并finish()关闭应用程序,而不是关闭 MainActivity 并返回 SecondaryActivity。startActivityForResult我知道,当我使用或registerForActivityResult时MainActivity 已经打开的事实launch可能是导致这些问题的原因,但是我能做些什么来解决它们呢?

编辑: 我的 MainActivity 被定义为singleTaskAndroidManifestAndroid 11 中似乎发生了一些变化,用于管理这样定义的活动。如果我删除此标签,它可以解决问题,但我不确定为什么我们将此活动定义为singleTask,我不希望看到任何旨在解决的错误...

0 投票
0 回答
138 浏览

android - registerForActivityResult:如果原始启动器被销毁并重新创建,则结果未交付

我正在用新的registerForActivityResult替换已弃用的startActivityForResult

一切正常,除非我尝试管理被销毁和重新创建的原始启动器。事实上,如此所述:

活动结果 API 将结果回调与代码中您启动其他活动的位置分离。

作为

有可能(并且,在内存密集型操作(例如使用相机)的情况下,几乎可以肯定)您的进程和您的活动将由于内存不足而被破坏。

我正在使用“开发人员选项”中的“不保留活动”功能对其进行测试,但我开始认为这不是正确的方法。

在我发布的链接中有一个测试部分,但我不明白为什么我应该使用它,因为我可以测试我的应用程序,只需开发我想要的功能。

这是我的代码。

在启动我写的活动时,在每个生命周期方法之外,以便在创建活动之前创建scanQr :

第二个活动在这里启动:

在第二个活动中,为了返回结果,我只需执行此操作。

我已经尝试调用 scanQr.unregister() 第一个活动 OnDestroy,但它没有做出任何改变。

你可以帮帮我吗?

提前致谢。