Mar*_*ark 8 android activity-stack back-stack
我有一个名为HomeActivity的活动,它有一个SurfaceView并显示一个摄像头预览图片.如果您正在启动/重新启动它,此活动会很安静并且感觉很慢.
所以我做了一些调查,发现,不知何故总是调用onCreate方法.在我看来,如果活动已经开始,这不应该发生?
该文件说:第一次创建活动时调用.这是您应该执行所有常规静态设置的地方:创建视图,将数据绑定到列表等.此方法还为您提供包含活动先前冻结状态的Bundle(如果有).始终紧跟onStart().
这是处理返回的方法:
protected void gotoHome() {
final Intent intent = new Intent(SomeOtherActivity.this, HomeActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
编辑:
以下是我离开HomeActivity的方式......没什么特别的:
final Intent i = new Intent(HomeActivity.this, SomeOtherActivity.class);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
Dav*_*ser 15
是的,当您想要返回HomeActivity时,您需要使用以下标志:
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
Run Code Online (Sandbox Code Playgroud)
以下是Intent.FLAG_ACTIVITY_CLEAR_TOP文档中的相关部分:
上面示例中当前运行的活动B实例将在其onNewIntent()方法中接收您从此处开始的新意图,或者本身已完成并使用新意图重新启动.如果它已将其启动模式声明为"多个"(默认值)并且您没有在同一意图中设置FLAG_ACTIVITY_SINGLE_TOP,那么它将被完成并重新创建; 对于所有其他启动模式或如果设置了FLAG_ACTIVITY_SINGLE_TOP,则此Intent将被传递到当前实例的onNewIntent().
| 归档时间: |
|
| 查看次数: |
8238 次 |
| 最近记录: |