마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

잠금 화면에서 팝업 띄우기.

0 추천

안녕하세요 초보 개발자입니다.

제가 잠금 화면에서 이벤트를 받으면 팝업을 띄우려고 하는데요.

테스트용으로 만들어서 팝업만 구현중입니다.

 

다이얼로그는 DialogFragment 를 상속받아서 사용했습니다.

 

다이얼로그를 생성 후 getLayoutInflater 에서 잠금화면에서 팝업이 뜨도록

            WindowManager.LayoutParams params = getDialog().getWindow().getAttributes();
            params.type = WindowManager.LayoutParams.TYPE_SYSTEM_ERROR;
            params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
            getDialog().getWindow().setAttributes(params);
 
위와 같은 코드를 태우고 다이얼로그 호출하는 부분에서 show를 해주는데요.
 
액티비티가 떠있을 때에는 다른 팝업과 다르게 뒷부분이 반투명 처리되면서 팝업이 뜹니다.
 
그런데 딜레이메세지를 날려서 홈화면 또는 잠금화면으로 전환 후 팝업을 띄우게 되면
 
02-06 03:20:41.959: E/AndroidRuntime(26742): java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
02-06 03:20:41.959: E/AndroidRuntime(26742): at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1365)
02-06 03:20:41.959: E/AndroidRuntime(26742): at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1383)
02-06 03:20:41.959: E/AndroidRuntime(26742): at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:636)
02-06 03:20:41.959: E/AndroidRuntime(26742): at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:615)
02-06 03:20:41.959: E/AndroidRuntime(26742): at android.support.v4.app.DialogFragment.show(DialogFragment.java:138)
02-06 03:20:41.959: E/AndroidRuntime(26742): at com.yun.popupex.MainActivity$5.handleMessage(MainActivity.java:93)
02-06 03:20:41.959: E/AndroidRuntime(26742): at android.os.Handler.dispatchMessage(Handler.java:102)
02-06 03:20:41.959: E/AndroidRuntime(26742): at android.os.Looper.loop(Looper.java:136)
02-06 03:20:41.959: E/AndroidRuntime(26742): at android.app.ActivityThread.main(ActivityThread.java:5118)
02-06 03:20:41.959: E/AndroidRuntime(26742): at java.lang.reflect.Method.invokeNative(Native Method)
02-06 03:20:41.959: E/AndroidRuntime(26742): at java.lang.reflect.Method.invoke(Method.java:515)
02-06 03:20:41.959: E/AndroidRuntime(26742): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
02-06 03:20:41.959: E/AndroidRuntime(26742): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)
02-06 03:20:41.959: E/AndroidRuntime(26742): at dalvik.system.NativeStart.main(Native Method)
 
 
위와 같은 에러가 나는데 .. 액티비티가 pause 상태라고 해서 팝업이 안뜨나요..?
 
이유를 모르겠습니다.. 도와주세요!

 

윤둥이 (4,560 포인트) 님이 2015년 2월 6일 질문

1개의 답변

0 추천
다이얼로그 형태로 띄우지마시고

액티비티를 다이얼로그처럼 만들어서 띄우셔야 함돠..
nicehee (73,100 포인트) 님이 2015년 2월 6일 답변
...