问题标签 [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.
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!
android - 在 react-native NativeModule 中使用时解析 registerForActivityResult 时出错
我正在创建一个 react-native 应用程序,在该应用程序中我需要从用户那里获得访问权限coarse-location和fine-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”
android - 将活动结果用于多种用途
我需要做两件事:-
- 一种从存储中选择文件
- 其次是请求发送短信的权限。
为此,我需要使用活动结果和活动结果合同。(这是新方法)
如何注册两个不同的合约?(选择文件并请求权限)
1.请求权限:
2.从存储中读取文件:
我怎样才能把这些放在一起?
谢谢!
android - 片段必须在创建之前调用寄存器 registerForActivityResult()
我正在开发购物应用程序,我创建了一个用于将产品添加到产品列表的片段。我需要获得读取外部存储权限才能将照片添加到产品,所以我尝试在我的片段中使用 registerForActivityResult() 并且我收到此错误。我是 android 编程的新手,所以我不知道我是否以正确的方式使用它。
我尝试了其他问题的所有答案,但它们也没有奏效。对不起,我的英语不好。谢谢你的帮助。
添加活动.kt:
java - onActivityResult 与 registerForActivityResult 有何不同?
- 实际上,以前我想从图库中挑选图像,所以我知道 onActivityResult 已被弃用,我们应该使用 registerForActivityResult()。所以我通过将 mime 类型定义为“image/*”来使用它,但现在我想从图库中导入 pdf,但没有这样的 mime 类型,我想了解这些 mime 的工作原理以及我如何通过以下方式完成我的任务registerForActivityResult() 方法
- 我还想了解我们如何将 someActivityResultLauncher 的数据类型定义为字符串?我想了解这整个事情是如何运作的……我们可以自己定义自定义 mime 类型吗?请帮助我
''' 包 com.parth.iitktimes;
android - registerForActivityResult 是否能够作为 ACTION_CHOOSER
我正在使用 registerForActivityResult 来启动相机或画廊,但是 registerForActivityResult 能够像 Intent.ACTION_CHOOSER 那样做吗?
以旧方式
android - 如何使用 ActivityResultContracts.CreateDocument() 添加意图类型
我正在使用以下代码在外部存储上创建文件
由于不推荐使用 startActivityForResult,我正在使用 ActivityResultContracts.CreateDocument()。但是我无法添加上面代码中显示为 type = "audio/*" 的意图类型
这是我的代码;
如何添加意图类型?
android - 从 registerForActivityResult(StartActivityForResult() 调用的启动电子邮件的意图未完成 RESULT_OK 上的活动结果
下面的所有代码都在 BackupRestoreActivity.kt
Intent 将数据库文件的副本附加到电子邮件中。数据库文件位于临时位置。电子邮件完成后,活动结果回调应开始从其临时位置删除数据库文件。
和
电子邮件在 Gmail 中创建,并附有备份文件。我发送电子邮件但当我的应用程序恢复时它不会在 BackupRestoreActivity 恢复(运行 ActivityResult 的 File.delete(),如上面的第一个代码块所示。)相反,我的应用程序在其主屏幕 MainActivity 恢复。文件删除不会发生。
我在 IDE 中使用 API 28 仿真,并使用设备文件资源管理器检查了文件位置。备份副本文件被创建。电子邮件步骤工作正常。任何关于为什么我没有成功使用 ActivityResult 的 File.delete() 的想法将不胜感激!
java - Android 11:无法从 startActivityForResult 或 registerForActivityResult 返回并启动
我有一个带有 MainActivity 和 SecondaryActivity 的应用程序。当 MainActivity 打开 SecondaryActivity 时,我需要用户从 MainActivity 中的列表中选择电话号码。我曾经用instartActivityForResult重新打开 MainActivity,以便 MainActivity 直接打开带有特定列表的片段,如下所示:extraintent
当用户单击该列表的一个元素时,我设置结果并完成 MainActivity 以返回 SecondaryActivity,如下所示:
到目前为止效果很好,但我注意到在 Android 11 设备中,我有两个问题:
startActivityForResult直接在onResume()函数中启动 MainActivity 而不通过onCreate()函数,对于 Android 10 及以下设备。这迫使我在每次onResume()调用 MainActivity 的函数时检查是否有任何extra发送。对已经收费的 MainActivity 不必要地增加额外费用的东西。- 我无法使用
finish()! 取而代之的是,该应用程序只是关闭了。
我尝试使用新的 Activity Result API,更具体地说:registerForActivityResult,像这样(在 SecondaryActivity 中):
但是,这并没有改变我描述的两个问题:onResume()在 MainActivity 中直接调用并finish()关闭应用程序,而不是关闭 MainActivity 并返回 SecondaryActivity。startActivityForResult我知道,当我使用或registerForActivityResult时MainActivity 已经打开的事实launch可能是导致这些问题的原因,但是我能做些什么来解决它们呢?
编辑:
我的 MainActivity 被定义为singleTask在AndroidManifestAndroid 11 中似乎发生了一些变化,用于管理这样定义的活动。如果我删除此标签,它可以解决问题,但我不确定为什么我们将此活动定义为singleTask,我不希望看到任何旨在解决的错误...
android - registerForActivityResult:如果原始启动器被销毁并重新创建,则结果未交付
我正在用新的registerForActivityResult替换已弃用的startActivityForResult。
一切正常,除非我尝试管理被销毁和重新创建的原始启动器。事实上,如此处所述:
活动结果 API 将结果回调与代码中您启动其他活动的位置分离。
作为
有可能(并且,在内存密集型操作(例如使用相机)的情况下,几乎可以肯定)您的进程和您的活动将由于内存不足而被破坏。
我正在使用“开发人员选项”中的“不保留活动”功能对其进行测试,但我开始认为这不是正确的方法。
在我发布的链接中有一个测试部分,但我不明白为什么我应该使用它,因为我可以测试我的应用程序,只需开发我想要的功能。
这是我的代码。
在启动我写的活动时,在每个生命周期方法之外,以便在创建活动之前创建scanQr :
第二个活动在这里启动:
在第二个活动中,为了返回结果,我只需执行此操作。
我已经尝试调用
scanQr.unregister()
第一个活动 OnDestroy,但它没有做出任何改变。
你可以帮帮我吗?
提前致谢。