私は Android アプリケーションで作業しています。私のシナリオは、アクティビティの上に透明なアクティビティを表示することであり、追加することで正常に実装されました。
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"
その活動の私のマニフェストで。しかし、Android デバイスのハードウェアのホーム ボタンもオーバーライドしたいと考えています。dispatchKeyEvent
そのため、キーイベントをオーバーライドし、onAttachedToWindow
それを正常に実装しました。しかし、ホームボタンのキーをオーバーライドすると、この透過的なアクティビティは表示されません。ホームキーイベントをオーバーライドするために使用したコードは次のとおりです。
:
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
onAttachedToWindow();
if ((event.getKeyCode() == KeyEvent.KEYCODE_HOME)) {
// if Home button is pressed EntryValidationActivity called
SharescreenActivity.this.finish();
Intent screenLockIntent = new Intent(SharescreenActivity.this,
EntryValidationActivity.class);
startActivity(screenLockIntent);
this.moveTaskToBack(true);
return true;
} else
return super.dispatchKeyEvent(event);
}
@Override
public void onAttachedToWindow() {
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
//this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
super.onAttachedToWindow();
}
これらの両方を連携させるためのソリューション。前もって感謝します。