メイン アクティビティの onKeyDown() を KEYCODE_BACK で呼び出そうとしているので、自分で「戻る」ボタンを押したかのように動作します。次のコードを使用してそれを行います。
KeyEvent goBackDown = new KeyEvent(0,0,KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_BACK,0,0);
goBackDown.dispatch(activity);
SystemClock.sleep(50); // as if human pressed the key
KeyEvent goBackUp = new KeyEvent(0,0,KeyEvent.ACTION_UP,KeyEvent.KEYCODE_BACK,0,0);
goBackUp.dispatch(activity);
私のアクティビティの onKeyDown() は現在、次の呼び出しのみを行っています。
return super.onKeyDown(keyCode, event);
ただし、実際の[戻る] ボタンとは異なり、「偽の」コードが呼び出されると、アクティビティは非表示になりません。
なんで?