안드로이드 개발 질문/답변
(글 수 45,052)
API Demo의 List9(Overlay)에 있는 예제를 적용하려고 합니다
어떤 뷰에 TouchListener를 구동하였을 때 가운데에 간단히 글자를 나타내는것인데요
계속 BadTokenException이 나타나네요 ㅠㅠ
android.view.WindowManager$BadTokenException: Unable to add window -- token android.app.LocalActivityManager$LocalActivityRecord@4058c0a8 is not valid; is your activity running?
해당 액티비티가 실행중이 아니다라고 말하는 것 같은데요 어떻게 해결해야할지 모르겠습니다
현재 어플은 두개의 Tab 아래에 액티비티가 구현되어 있구요 액티비티의 소스는 대략 다음과 같습니다.
mWindowManager = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
mHandler.post(new Runnable() { public void run() { mReady = true; WindowManager.LayoutParams lp = new WindowManager.LayoutParams( LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_APPLICATION, WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, PixelFormat.TRANSLUCENT); Log.e(TAG, "mDialogText : " + mDialogText.getText()); mWindowManager.addView(mDialogText, lp); } });
if (mReady) { if (!mShowing) { mShowing = true; mDialogText.setVisibility(View.VISIBLE); } mDialogText.setText("안녕하세요"); mHandler.removeCallbacks(mRemoveWindow); mHandler.postDelayed(mRemoveWindow, 3000); }
에러가 나는 부분은 mWindowManager.addView(mDialogText, lp)입니다.
윈도우를 추가할 수 없다는 얘긴데 이거 시간 엄청 소비했습니다 ㅠㅠ
검색을 이리저리 해봐도 저의 문제와는 조금 다른듯 하더군요
단순히 List9(Overlay)의 소스를 가져왔을 뿐인데요
고수님들 부탁드리겠습니다