【发布时间】:2014-12-22 19:38:13
【问题描述】:
是否有一种优雅的方法可以从非活动类中获取活动的结果,或者它总是会被破解?如果可能的话,我会更好地避免这种情况吗?
总结>
我有一个活动,它有一个 Web 服务的会话实例,通常会预先进行身份验证(会话密钥将保存在 共享首选项)。但是,第一次运行时,我需要弹出一个登录活动,它将用户名和密码返回给会话,然后会话将与服务器对话并获取会话密钥。
理想情况下,我希望非活动会话类调用 startActivityForResult,但我不确定这是否可能。我已经看到了有关如何完成的各种问题:
How to get the result from OnActivityResult inside another class?(outside of the activity
use startActivityForResult from non-activity
但它们似乎都有点老套。我也看到了这个,这表明传递上下文并不是最好的主意:
http://android-developers.blogspot.co.uk/2009/01/avoiding-memory-leaks.html
另一种选择是将用户名和密码保存到 sharedpreferences 并在另一个类中检索它,但是我必须有一些方法来弄清楚它是什么时候保存的,这一切似乎变得相当混乱.
另一种选择是使会话成为非显示活动。不过似乎开销很大。
我的项目仍处于规划阶段,因此我正在寻求最佳实践。最优雅的方法是什么?
【问题讨论】:
-
请写到重点。看起来很有描述性,没有人会读这整个废话!!!!
-
对太多信息投反对票似乎相当苛刻:你已经确保现在没有人会读它,给它打负分。
-
我亲爱的朋友,我没有否决你的问题,我通常从不否决这个问题,无论问题是什么,如果我不喜欢,我会在此处发表评论。所以我亲爱的朋友,我没有否决你的问题。
-
抱歉,我草草下结论。稍后我会尝试将摘要编辑到帖子顶部,以便有兴趣的人仍然可以看到所有信息,但对于那些没有太多时间的人来说并不会太吓人。
标签: java android android-activity start-activity