1

の下部にいくつかのコントロールボタンとカスタムビュー(MainView)があるレイアウトがありHorizontalLayoutます。は、他のスレッドを開始しますMainViewControllerThread私の目標はControllerThread、画面のロックが解除さHorizontalLayoutれ、ユーザーに確実に表示されるまで開始しないことです。

(以下ControllerThread_ctrlr

私は最初に素朴に'sコンストラクターに入れまし_ctrlr.start()MainView。次に、に配置しましたonFinishInflation()が、画面のロックが解除される前に呼び出されます。私の最後の試みは、がに設定されてonWindowVisibilityChanged()いる場合、それを配置してコントローラーを起動することでしたが、これでも、画面のロックが解除される前に呼び出されます。が実行されていることが確認されているため、画面のロックが解除される前にこれらの関数が呼び出されていると想定しています。visibilityVISIBLE_ctrlr

View画面がロック/ロック解除されているかどうかを確認する方法はありますか?それとも私は多分使用する必要がありKeyguardManagerますか?

4

1 に答える 1

0

ブラックベルトの提案に従って、呼び出されたMainViewときにコントローラーを開始するパブリッククラスをに作成することにより、スレッドを開始するための呼び出しをコントローラーに移動しました。I callの OnResume でMainActivity:

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

画面のControllerThreadロックを解除した後、アプリがエミュレーターで実際にプルアップされるまで、 は起動しません。

于 2013-01-15T16:17:37.277 に答える