我有一个包含几个视图的活动。其中之一是GLSurfaceView。此GLSurfaceView根据我的Activity的其他视图(ListViews,EditTexts等)中选择的内容显示漂亮的3D效果。我遇到的问题是我不知道什么时候我的GLSurfaceView已从Activity完全初始化。我如何知道GLSurfaceView何时从Activity完全初始化?
我开始时只是在setContentView()方法后不久尝试将我的图形数据传递给我的Activity的onCreate()方法中的GLSurfaceView。这在模拟器上工作得很好,但在几个设备上,这会失败,导致尝试访问尚未构建的对象的空指针异常。我认为这是因为我的观点还没有被夸大,也许充气观点在我的设备上花费的时间更长。
为了查看事物的顺序,我散布了一些日志记录,并且发现我的GLSurfaceView的onSurfaceCreated方法在GLSurfaceView的onFinishInflate方法后被调用。
因此,现在我正在寻找一种很好的方法来确定我的GLSurfaceView的onSurfaceCreated方法已被调用,以便我可以安全地告诉我的GLSurfaceView绘制什么。