我的布局在MainView
的底部有一些控制按钮和自定义视图(HorizontalLayout
)。 MainView
启动ControllerThread
,然后启动其他线程。我的目标是在屏幕解锁之前不启动ControllerThread
,并且用户肯定可以看到HorizontalLayout
。
(此后ControllerThread
为_ctrlr
)
我首先天真地将_ctrlr.start()
放在MainView
的构造函数中。然后我把它放在onFinishInflation()
中,但是在屏幕解锁之前调用它。我的最后一次尝试是将其置于onWindowVisibilityChanged()
并在visibility
设置为VISIBLE
时启动控制器,但即使在屏幕被解锁之前调用此控件也是如此。我假设在屏幕被解锁之前调用了这些函数,因为确认_ctrlr
正在运行。
View
中是否有可用的方法来检查屏幕是否被锁定/解锁?或者我是否必须使用KeyguardManager
?
答案 0 :(得分:0)
根据blackbelt的建议,我通过在MainView
中创建一个公共类来调用启动线程到控制器,该公共类将在调用时启动控制器。在MainActivity
的OnResume中,我打电话:
((MainView) findViewById(R.id.mainView)).startController();
在您解锁屏幕后,在模拟器中实际启动应用程序之前,ControllerThread
现在无法启动。