Eug*_*ene 5 android android-tabhost
我有一个TabHost有两个tabs.我第一次切换到第二tab了onResume()我的第二个的方法tab's activity调用.然后我有一个AlertDialog显示,并在它消失之后'onResume()'方法没有被调用,但我真的等待它.我假设调用'AlertDialog'触发'onPause()'方法并且'onResume()'应该在实际显示'Activity'并准备好与用户交互之前调用.但是当我切换回第一个tab是另一个时,没有调用'onPause()' activity.
您能否建议为什么不调用'onPause()'和'onResume()'方法以及在显示'AlertDialog'或切换之间调用哪些方法tabs?
当您创建TabHost以保存活动时,其中的子项无法管理自己的生命周期方法(onResume,onPause,onCreated等),并且父(持有者)必须执行所有管理.我通过覆盖持有者(定义tabhost的Activity)中的onPause和onResume实现了这种行为,如下所示:
@Override
public void onPause() {
super.onPause();
try {
mlam.dispatchPause(isFinishing());
} catch (Exception e) {}
}
@Override
public void onResume() {
super.onResume();
try {
mlam.dispatchResume();
} catch (Exception e) {}
}
Run Code Online (Sandbox Code Playgroud)
其中" mlam "是LocalActivityManager实例.有了它,我认为你的onResume/onPause方法将被触发.希望这能以某种方式帮助你.
我认为调用“AlertDialog”会触发“onPause()”方法,并且应在“Activity”实际显示并准备好与用户交互之前调用“onResume()”
AlertDialog 不会影响 Activity 的生命周期。
在 Tab 之间切换时,如果需要回调方法为什么不使用TabChanged Listener
| 归档时间: |
|
| 查看次数: |
5042 次 |
| 最近记录: |