线程在屏幕仍然锁定时启动,要防止

时间:2013-01-15 15:51:59

标签: android multithreading view

我的布局在MainView的底部有一些控制按钮和自定义视图(HorizontalLayout)。 MainView启动ControllerThread,然后启动其他线程。我的目标是在屏幕解锁之前不启动ControllerThread,并且用户肯定可以看到HorizontalLayout

(此后ControllerThread_ctrlr

我首先天真地将_ctrlr.start()放在MainView的构造函数中。然后我把它放在onFinishInflation()中,但是在屏幕解锁之前调用它。我的最后一次尝试是将其置于onWindowVisibilityChanged()并在visibility设置为VISIBLE时启动控制器,但即使在屏幕被解锁之前调用此控件也是如此。我假设在屏幕被解锁之前调用了这些函数,因为确认_ctrlr正在运行。

View中是否有可用的方法来检查屏幕是否被锁定/解锁?或者我是否必须使用KeyguardManager

1 个答案:

答案 0 :(得分:0)

根据blackbelt的建议,我通过在MainView中创建一个公共类来调用启动线程到控制器,该公共类将在调用时启动控制器。在MainActivity的OnResume中,我打电话:

((MainView) findViewById(R.id.mainView)).startController();

在您解锁屏幕后,在模拟器中实际启动应用程序之前,ControllerThread现在无法启动。