Java 在调用startActivityForResult的类中未调用onActivityResult
我有一个MainActivity,一个NonActivity类和SearchActivity。非活动类调用startActivityForResult,但从未调用非活动类中的onActivityResult 但当我为测试目的实现它时,我发现它在MainActivity中被调用。您能告诉我,如果可能的话,onActivityResult将从nonActivity类调用吗 这是我在非活动类中调用的代码Java 在调用startActivityForResult的类中未调用onActivityResult,java,android,Java,Android,我有一个MainActivity,一个NonActivity类和SearchActivity。非活动类调用startActivityForResult,但从未调用非活动类中的onActivityResult 但当我为测试目的实现它时,我发现它在MainActivity中被调用。您能告诉我,如果可能的话,onActivityResult将从nonActivity类调用吗 这是我在非活动类中调用的代码 Intent intent = new Intent(activity, SearchActivi
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()
不会在非活动类上调用,因为实际上它不是启动新活动的那一个,您的调用startActivityForResult()
在MainActivity
对象上,调用onActivityResult()
的位置是MainActivity
。要将其回调到非活动
,只需在非活动
中创建一个方法,并从main活动的
onActivityResult()
调用它,传递所需的参数 好的,我想这是避免这种情况的一个选择,因为我想要一个完全独立的类来处理所有的工作。谢谢@anze87,不客气。顺便说一句,您可以尝试通过提供一个接口将MainActivity与NonActivity解耦,NonActivity将实现该接口。这样,您的MainActivity将知道非活动是一个简单的“侦听器”,并从onActivityResult()向其发送回调。对我来说似乎是个更好的解决办法。你能给我举个小例子吗?我不确定我是否完全理解,我对这件事还不熟悉。再发一个问题,我会帮你的。您不能使用上一篇文章中有人回答的传入活动。对于这个问题,伊戈尔的答案是绝对正确的。