由于子活动是通过从Parent Activity调用startActivity(intent)创建的,因此可以保证在子活动运行时父对象存在。
从这个角度来看,我可以在孩子的课堂上操纵Parent的公共变量,而不是在我回来后调用startActivityForResult()吗?
为什么我们需要使用该方法?
答案 0 :(得分:3)
保证在子活动运行时父对象存在。
不,不是。对于初学者,可以跨进程边界使用startActivityForResult()
,其中您开始的活动位于另一个应用程序中。启动的活动无法访问启动它的活动,因为它们位于不同的进程中。除此之外,原始活动所在的进程可能会在后台处于终止状态时终止,因为用户处于第二个活动中 - 当第二个活动是相机应用程序时,这种情况会发生,类似于ACTION_IMAGE_CAPTURE
Intent
。
我可以操纵Parent的公共变量
一项活动无法访问其他活动实例。唯一可能的方法是通过static
对活动的引用,这些方法在不引入内存泄漏的情况下很难实现。而且,这只会在两个活动处于同一过程中时才有效。
为什么我们需要使用该方法?
你没有。在Android上有多种编写UI的方法。很少需要使用startActivityForResult()
。例如,如果这两个UI紧密耦合,也许它们应该在一个单独的活动中,其中UI的位是单独的片段。