java - onActivityResult 不是从调用 startActivityForResult 的类中调用的

标签 java android

我有一个 MainActivity、一个 NonActivity 类和 SearchActivity。 NonActivity 类调用 startActivityForResult,但 nonActivity 类中的 onActivityResult 永远不会被调用。

但是当我出于测试目的实现它时,我发现它是在 MainActivity 中调用的。您能告诉我是否有可能从非Activity类调用onActivityResult吗?

这是我从 NonActivity 类调用的代码。

Intent intent = new Intent(activity, SearchActivity.class);
        //start SearchActivity through intent and expect for result. The result is based on result code, which is REQUEST_DISCOVERY 
        activity.startActivityForResult(intent, REQUEST_DISCOVERY);
    }

感谢您的回答,如果您需要更多代码,我可以添加。

最佳答案

onActivityResult() 不会在 NonActivity 类上调用,因为实际上它不是启动新 Activity 的类,您对 MainActivity 对象调用 startActivityForResult(),而 MainActivity 是调用 onActivityResult() 的地方。要将其回调到 NonActivity,只需在 NonActivity 中创建一个方法,然后从 MainActivity 调用它 onActivityResult(),传递您需要的参数。

关于java - onActivityResult 不是从调用 startActivityForResult 的类中调用的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16207300/

相关文章:

java - Android LiveData,无法创建类viewModel的实例

java - 如何在从 ITextRenderer 和 Thymeleaf HTML 模板生成的 PDF 文件中显示 Unicode(十六进制)字符

android - ToolbarAndroid 标志边框半径

android - 如何有条件地在 ionic 4 中设置根页面?

java - Android开发图片上传损坏

android - Flutter:如何启动和 android intent 并将数据返回到 flutter

java - 如何使用在 Android studio 中自动创建的内部静态 Placeholder Fragment 类?

Java HotSpot(TM) 64 位服务器 VM 警告 : failed; error ='Not enough space' (errno=12)

java - 接口(interface)如何在其签名或返回类型中包含引用接口(interface)具体实现类型的方法?

android - Android TV 的手机/平板电脑的纵向模式和横向模式?