1
내 앱에서 onKeyDown
메서드를 무시하고 사용자 지정 대화 상자를 호출했지만 장치를 실행 중일 때 해당 사용자 지정 대화 상자가 표시되지 않았습니다. 디버거를 사용하여 onKeyDown
메서드가 호출되었지만 대화 상자가 표시되지 않고 앱이 종료되는 것을 확인했습니다. 도와주세요onKeyDown 대화 상자가 표시되지 않습니다.
02-22 17:40:30.653: E/WindowManager(18524): Activity com.example.FirstScreenActivity has leaked window [email protected] that was originally added here
02-22 17:40:30.653: E/WindowManager(18524): android.view.WindowLeaked: Activity com.example.FirstScreenActivity has leaked window [email protected] that was originally added here
02-22 17:40:30.653: E/WindowManager(18524): at android.view.ViewRootImpl.<init>(ViewRootImpl.java:415)
02-22 17:40:30.653: E/WindowManager(18524): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:322)
02-22 17:40:30.653: E/WindowManager(18524): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:234)
02-22 17:40:30.653: E/WindowManager(18524): at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:153)
02-22 17:40:30.653: E/WindowManager(18524): at android.view.Window$LocalWindowManager.addView(Window.java:557)
02-22 17:40:30.653: E/WindowManager(18524): at android.app.Dialog.show(Dialog.java:277)
02-22 17:40:30.653: E/WindowManager(18524): at com.example.onKeyDown(FirstScreenActivity.java:173)
02-22 17:40:30.653: E/WindowManager(18524): at android.view.KeyEvent.dispatch(KeyEvent.java:2715)
02-22 17:40:30.653: E/WindowManager(18524): at android.app.Activity.dispatchKeyEvent(Activity.java:2431)
02-22 17:40:30.653: E/WindowManager(18524): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchKeyEvent(PhoneWindow.java:2071)
02-22 17:40:30.653: E/WindowManager(18524): at android.view.ViewRootImpl.deliverKeyEventPostIme(ViewRootImpl.java:3960)
02-22 17:40:30.653: E/WindowManager(18524): at android.view.ViewRootImpl.handleImeFinishedEvent(ViewRootImpl.java:3908)
02-22 17:40:30.653: E/WindowManager(18524): at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:3042)
02-22 17:40:30.653: E/WindowManager(18524): at android.os.Handler.dispatchMessage(Handler.java:99)
02-22 17:40:30.653: E/WindowManager(18524): at android.os.Looper.loop(Looper.java:137)
02-22 17:40:30.653: E/WindowManager(18524): at android.app.ActivityThread.main(ActivityThread.java:4963)
02-22 17:40:30.653: E/WindowManager(18524): at java.lang.reflect.Method.invokeNative(Native Method)
02-22 17:40:30.653: E/WindowManager(18524): at java.lang.reflect.Method.invoke(Method.java:511)
02-22 17:40:30.653: E/WindowManager(18524): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
02-22 17:40:30.653: E/WindowManager(18524): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
02-22 17:40:30.653: E/WindowManager(18524): at dalvik.system.NativeStart.main(Native Method)
이 내 onKeyDown
방법,
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if ((keyCode == KeyEvent.KEYCODE_BACK))
{
LayoutInflater factory = LayoutInflater.from(FirstScreenActivity.this);
View DialogView = factory.inflate(R.layout.exit_dialog, null);
final Dialog exit_dialog = new Dialog(FirstScreenActivity.this,R.style.Theme_Dialog);
exit_dialog.setContentView(DialogView);
exit_dialog.show();
Button btnYes = (Button) exit_dialog.findViewById(R.id.btnYes);
btnYes.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
android.os.Process.killProcess(android.os.Process.myPid());
}
});
Button btnNo = (Button) exit_dialog.findViewById(R.id.btnNo);
btnNo.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
exit_dialog.dismiss();
}
});
}
return super.onKeyDown(keyCode, event);
}
또한 로그 캣에서이 오류가.
감사합니다.
oh..oh ... 감사합니다 :) – Android