1. 使用ActivityGroup时,如何保存Activity状态?
其实很简单, 只要像下面这样来加载Activity即可。
view plainprint?
getLocalActivityManager().startActivity("XXX", new Intent(this, XXX.class)).getDecorView()
那么又如何让ActivityGroup不保存子Activity的状态呢? 即切换时,直接销毁。
其实只要加一个Flag: Intent.FLAG_ACTIVITY_CLEAR_TOP
,如下:
view plainprint?
getLocalActivityManager().startActivity("YYY", new Intent(this, YYY.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView()
2 使用ActivityGroup时,如何使用子Activity的Menu?
其实也很简单,只要在继承ActivityGroup的类中
view plainprint?
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_MENU) {
this.getLocalActivityManager().getCurrentActivity().openOptionsMenu();
}
return super.onKeyDown(keyCode, event);
}
onkeyDown 或者 onkeyUp都可以!
其实很简单, 只要像下面这样来加载Activity即可。
view plainprint?
getLocalActivityManager().startActivity("XXX", new Intent(this, XXX.class)).getDecorView()
那么又如何让ActivityGroup不保存子Activity的状态呢? 即切换时,直接销毁。
其实只要加一个Flag: Intent.FLAG_ACTIVITY_CLEAR_TOP
,如下:
view plainprint?
getLocalActivityManager().startActivity("YYY", new Intent(this, YYY.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView()
2 使用ActivityGroup时,如何使用子Activity的Menu?
其实也很简单,只要在继承ActivityGroup的类中
view plainprint?
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_MENU) {
this.getLocalActivityManager().getCurrentActivity().openOptionsMenu();
}
return super.onKeyDown(keyCode, event);
}
onkeyDown 或者 onkeyUp都可以!
本文详细介绍了在Android应用中使用ActivityGroup时如何保存Activity状态,并且如何利用子Activity的Menu功能。通过设置特定Intent标志Intent.FLAG_ACTIVITY_CLEAR_TOP实现ActivityGroup中的Activity在切换时直接销毁,同时在ActivityGroup类中重写onKeyUp方法,使得子Activity的Menu可以在特定按键事件下被打开。
118

被折叠的 条评论
为什么被折叠?



