2012-01-12 20 views
0

私のアプリケーションでサービスを使用しているアクティビティを実行しています。したがって、サービスが実行中で、キーガードがロックされている場合は、コードでロックを解除していて、アクティビティを再び表示しています。そのために、私はアクティビティのonReceive()メソッドにコードを書きました。onResume()メソッドが同じアクティビティから呼び出していない

protected void onResume() 
{ 
    Log.d("Testing","ONRESUME OF HOME SCREEN"); 
    // only when screen turns on 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); 
    super.onResume(); 
} 

しかし、私は別の活動(と仮定電話のホーム画面)に自分の活動から移動し、キーガードをロックしていたときに、それはロックを解除し、私の活動を示しています。しかし、私の活動がキーガードを表示してロックしている場合、手動でロックを解除していない限り、キーガードのロックを解除することはできません。

私は問題が何かを得ていません。助けてください....

+0

問題の説明が不明なので、何をしたいのかを具体的に説明してください。 – jeet

+0

サービスを使用して特定の期間に1つのアクティビティを表示しているとします。そのアクティビティは、1つのイメージと1つのデジタルクロックで構成されます。今、私の活動が電話機のホーム画面に表示されているとします。つまり、実行中で、画面がロックされていることを意味します。だから私はそれを自動的にロック解除し、再び私の活動を示す必要があります。そのために私は上記のコードを書いた。 –

+0

「アクティビティのonReceive()メソッド」とはどういう意味ですか?何が活動であるか知っていますか?アクティビティにはonReceive()メソッドがありません。 – Sameer

答えて

0

あなたのアクティビティがイベントスレッドを制御しているときにonResumeが呼び出されます。

また、他のアクティビティを開始したときにonPause()、onStopこのアクティビティ(画面)の上にonResume()およびonStart()が呼び出されます。

ロック画面が同じアクティビティで表示されるビューコンポーネントである場合、どちらのアクティビティライフサイクルメソッドも呼び出されません。

+0

しかし、別のアクティビティに移動しているとき(電話機のホーム画面を想定)、電話機をロックすると、ロックが解除され、自分のアクティビティのみが表示されます。 OnResume()メソッドの内部に入っています。ログを印刷しています。 –

+0

あなたのアクティビティを時間通りに表示しているときにアクティビティを開始した後に、次のアクションのステップをたどってから - > startactivity-> onCreate() - > onStart() - > onResume() – jeet

+0

どうすればこの問題を解決できますか? –

関連する問題