Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从非活动类获取活动的结果_Java_Android_Android Activity_Start Activity - Fatal编程技术网

Java 从非活动类获取活动的结果

Java 从非活动类获取活动的结果,java,android,android-activity,start-activity,Java,Android,Android Activity,Start Activity,有没有一种优雅的方法可以从非活动类中获得活动的结果,或者它总是会是一种黑客行为?如果可能的话,我会更好地避免这种情况吗 我有一个活动,它有一个web服务会话的实例,通常会对其进行预验证,会话密钥将保存在其中 共享引用。但是,在它第一次运行时,我需要弹出一个登录活动,它将向会话返回用户名和密码,然后会话将与服务器对话并获取会话密钥 理想情况下,我希望非活动会话类调用startActivityForResult,但我不确定这是否可行。我看到了关于如何做到这一点的各种问题: 但他们似乎都有点不正常。我

有没有一种优雅的方法可以从非活动类中获得活动的结果,或者它总是会是一种黑客行为?如果可能的话,我会更好地避免这种情况吗

我有一个活动,它有一个web服务会话的实例,通常会对其进行预验证,会话密钥将保存在其中 共享引用。但是,在它第一次运行时,我需要弹出一个登录活动,它将向会话返回用户名和密码,然后会话将与服务器对话并获取会话密钥

理想情况下,我希望非活动会话类调用startActivityForResult,但我不确定这是否可行。我看到了关于如何做到这一点的各种问题:

但他们似乎都有点不正常。我也看到了这一点,这表明传递上下文并不是最好的主意:

另一个选择是保存用户名和密码以共享引用,然后在另一个类中检索它,但是我必须有一些方法来确定它是何时被保存的,而这一切似乎变得相当混乱

另一个选项是将会话设置为非显示活动。不过看起来开销很大


我的项目仍处于计划阶段,所以我在追求最佳实践。最优雅的方式是什么?

我会使用事件总线,例如Otto、GreenRobot,将活动的结果传达给非活动。

请直截了当。这看起来很有描述性,没有人会读这些废话!!!!对太多的信息投反对票似乎相当苛刻:你给了它负面的分数,确保了现在没有人会读到它。我亲爱的朋友,我没有对你的问题投反对票,我通常不会对这个问题投反对票。不管这个问题是什么,如果我不喜欢,那么我在这里放上一条评论。所以,我亲爱的朋友,我没有否决你的问题。抱歉,我仓促下结论。稍后我会尝试在文章顶部编辑一个摘要,这样感兴趣的人仍然可以看到所有的信息,但对于那些没有太多时间的人来说,这并不太令人畏惧。谢谢你的建议,我会调查这些。我最初的想法是,它们的开销甚至比让我的会话成为一项活动还要大!当我需要一个事件总线时,我无法预见我的应用程序中的另一个点。