シナリオ:
フォアグラウンドで実行されているアクティビティがあります。しばらくすると、画面が自動的にロックされます。
後で、ロック画面に関係なく画面を再度表示する必要があるという新しいインテントを受け取りました..
このアクティビティがロック画面のすぐ後ろにあるときに画面をオンにするにはどうすればよいですか (ロックボタンをもう一度押すと、アクティビティが表示されます)
アクティビティを開始するときに画面をオンにする方法しか知らない
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// make incoming call show on locked screen
getWindow().addFlags(
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
}
アクティビティが既に作成された後、画面をオンにしたいのですが、onStop() の後にバックグラウンドにありました。
次のことを試しましたが、うまくいきません。
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
handleCallingIntent(intent);
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
final PowerManager.WakeLock wl = pm.newWakeLock(
PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "Incoming Call");
wl.acquire();
mDismissButton.postDelayed(new Runnable() {
@Override
public void run() {
// just to test if screen will be on for 10s
wl.release();
}
}, 10000L);
}