我的活动包含太多 UI 控件。我想在使活动可见后执行一个方法。
我尝试过的一个例子:
public class Main extends Activity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MyMethod();
}
private void MyMethod(){
Toast.makeText(this, "Hi UI is fully loaded", Toast.LENGTH_SHORT).show();
}
}
但在上面的示例中,消息在活动可见之前显示。
有没有办法查明活动是否完全可见?
将您的代码移至onResume
@Override
protected void onResume()
{
super.onResume();
MyMethod();
}
检查活动生命周期
http://developer.android.com/reference/android/app/Activity.html http://developer.android.com/reference/android/app/Activity.html
protected void onResume ()
在 onRestoreInstanceState(Bundle)、onRestart() 或 onPause() 之后调用,以便您的 Activity 开始与用户交互。这是开始动画、打开独占访问设备(例如相机)等的好地方。
请记住,onResume 并不是表明您的活动对用户可见的最佳指标;诸如键盘保护之类的系统窗口可能位于前面。使用 onWindowFocusChanged(boolean) 可以确定您的活动对用户可见(例如,恢复游戏)。
派生类必须调用超类对此方法的实现。如果不这样做,就会抛出异常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)