我希望在活动完成设置后执行操作。 我需要的不仅仅是简单地在活动中的其他所有内容之后编写代码,因为需要完成一些显示措施,并且我只需要在活动完全设置后进行计算/
我尝试使用
final ViewTreeObserver observer = mainLayout.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
//whatever I want to do...
}
});
这确实有效,但它让我的应用程序崩溃只有
` `"01-30 14:21:55.615: A/libc(4867): Fatal signal 11 (SIGSEGV) at 0x00022588 (code=1), thread 4867 (m.fgdvir.ezlist)"
在错误日志中
请求帮助! 感谢答案 0 :(得分:0)
您可以将代码放在onResume()
中,一旦设置了用户界面并且用户可以与其进行互动,就会将其调回您的活动。
@Override
public void onResume() {
super.onResume();
// ... code goes here
}
答案 1 :(得分:0)
好吧,经过一番挖掘,我注意到我的解决方案是正确的(不确定是否是最好的方式,但它对我有用),但我有一件事缺失 - 在调用 onGlobalLayouLtListener 之后我需要删除监听器。所以我使用的代码如下:
final ViewTreeObserver observer = view.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
//The things I need to be done after activity setup is finished.
}
});
顺便说一下 - 我注意到我真的不知道在活动中查看哪个视图,我附加到OnGlobalLayoutListener,你可以真正选择你想要的。