我有一个活动StaggeredPrenotaTour
开始第二个活动Details
到Intent
,而班级Details
包含AsyncTask
个班级ReservationTask
,并且在对网络进行一些操作之后,它必须将Java Object
传递回StaggeredPrenotaTour
类。
StaggeredPrenotaTour
开始时Details
:
Intent message = new Intent(staggeredPrenotaTour, Details.class);
message.putExtras(bundle);
getContext().startActivity(message);
基本上我需要将Object
传递给StaggeredPrenotaTour
的当前上下文,这样我就不必创建它的新实例,而是更新当前内容! / p>
不幸的是,我已经读过您无法从Context
获得Intent
,那么如何在StaggeredPrenotaTour
内获取Details
的工作实例? {1}}上课?
答案 0 :(得分:1)
开始另一项活动不一定是单向的。你也可以 开始另一项活动并收到结果。要收到结果, 调用startActivityForResult()(而不是startActivity())。
有关详细信息,请阅读developer.android.com
上的指南答案 1 :(得分:1)
那么如何在Details类中获取StaggeredPrenotaTour的工作实例呢?
你没有。
所以我不必创建它的新实例,但更新当前内容!
听起来这两个活动应该共享一个共同的数据模型,可能是通过一个单独的管理器实现的。 StaggeredPrenotaTour
可以在其onResume()
方法中使用修订后的数据,该方法将在Details
被销毁后(例如,用户按下BACK)将其作为回传到前台的一部分进行调用。
或者,使用活动巴士(LocalBroadcastManager
,greenrobot的EventBus,Square的Otto等)。请ReservationTask
提出ReservationResultsEvent
订阅的StaggeredPrenotaTour
,以便StaggeredPrenotaTour
能够找到工作结果。