【发布时间】:2012-07-06 00:35:29
【问题描述】:
我有一个名为 HomeActivity 的活动,它有一个 SurfaceView 并显示一个相机预览图片。此活动很安静,如果您正在启动/重新启动它会感觉很慢。
所以我进行了一些调查并发现,总是以某种方式调用 onCreate 方法。在我看来,如果活动已经开始,这不应该发生?
documentation 说: 在第一次创建活动时调用。这是您应该进行所有常规静态设置的地方:创建视图、将数据绑定到列表等。此方法还为您提供了一个包含活动先前冻结状态的 Bundle(如果有的话)。 始终跟在 onStart() 之后。
这是处理返回的方法:
protected void gotoHome() {
final Intent intent = new Intent(SomeOtherActivity.this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
编辑:
这是我离开 HomeActivity 的方式...没什么特别的:
final Intent i = new Intent(HomeActivity.this, SomeOtherActivity.class);
startActivity(i);
【问题讨论】:
-
确保在从 HomeActivity 启动另一个 Activity 时没有完成() HomeActivity。
-
onCreat() 在您使用方法
gotoHome()返回时调用? -
@Egor 我没有调用finish()
-
你检查过 HomeActivity 的 onDestroy 方法是否被调用了吗?
-
@JonathanNaguin 是的,它在其他活动开始后被销毁,这是问题,但我该如何避免这种情况?真的可以吗?
标签: android back-stack activity-stack