作为Android新手,我开始怀疑Activity的生命周期。我有一个Activity加载人员列表并显示它们。单击一个Person后,我想打开另一个Activity,显示该Person的详细信息。我现在正在通过在“PersonDetailActivity”上创建一个Intent来实现这一点,然后我开始。到现在为止还挺好。在PersonDetail页面上,我想要一个菜单操作返回到Person列表。我再次应用了相同的技术,这意味着一个Intent将我带回PersonListActivity。
现在我开始想知道返回PersonListActivity意味着什么。是否会创建一个新实例,我是否必须重新加载它在列表中显示的人员?你能回到同一个实例,避免再次重新加载列表吗?那么你是否必须通过意图传递给自己的指针到另一个Activity?
那么什么时候会重新实例化和活动,何时不会重新实例化。任何提示或建议都非常受欢迎。也许有一些模式可以应用于我尚未意识到的这些来回菜单操作。
谢谢,
文森特
答案 0 :(得分:1)
是,,。在第二个Activity中调用finish()
,而不是启动新的Activity ..
基本上有一些叫做活动堆栈的东西,它按照启动的顺序存储所有活动..所以如果启动新的Actvity,它位于堆栈顶部,而preveous就会低于它...当你调用完成时,Activity就是加快了..
如果您不想在正确的情况下调用finish()
,请在清单中为第一个活动添加标记ACTIVITY_CLEAR_TOP
。
答案 1 :(得分:0)
基本上,如果您只是在finish()
PersonDetailActivity
方法
PersonDetailActivity.this.finish();
它将从已完成的活动顶部的活动中激活onResume()
方法,这将是您的PersonsActivity。您可以在onResume()
方法中指定返回时要执行的操作。