从Intent获取Context

时间:2015-07-04 14:19:28

标签: java android android-intent

我有一个活动StaggeredPrenotaTour开始第二个活动DetailsIntent,而班级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}}上课?

2 个答案:

答案 0 :(得分:1)

  

开始另一项活动不一定是单向的。你也可以   开始另一项活动并收到结果。要收到结果,   调用startActivityForResult()(而不是startActivity())。

有关详细信息,请阅读developer.android.com

上的指南

答案 1 :(得分:1)

  

那么如何在Details类中获取StaggeredPrenotaTour的工作实例呢?

你没有。

  

所以我不必创建它的新实例,但更新当前内容!

听起来这两个活动应该共享一个共同的数据模型,可能是通过一个单独的管理器实现的。 StaggeredPrenotaTour可以在其onResume()方法中使用修订后的数据,该方法将在Details被销毁后(例如,用户按下BACK)将其作为回传到前台的一部分进行调用。

或者,使用活动巴士(LocalBroadcastManager,greenrobot的EventBus,Square的Otto等)。请ReservationTask提出ReservationResultsEvent订阅的StaggeredPrenotaTour,以便StaggeredPrenotaTour能够找到工作结果。