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

인텐트를 호출하는데 왜이렇게 에러가 뜨는지.. 이유를 모르겠어요.

0 추천

 

안녕하세요.

인텐트를 호출하는 과정에서, 아래와 같은 에러가 발생하는데 이유를 잘 모르겠습니다..

제가 원래 생각했던 부분은, 다이얼로그의 창이 뜨고 3초뒤에 Register.class로 넘어가던지 그게 아니라면

확인버튼을 누르면 Register.class로  이동을 하게 하는건데 아래와 같은 에러가 떠서 어떻게 해결해줘야할지..

모르겠습니다. 8000자가 넘는 부분은, 아래의 답변 부분에 달아보겠습니다.

 

E/WindowManager: android.view.WindowLeaked: Activity ex.real_project.Register has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{3b27e73f V.E..... R.....I. 0,0-640,560} that was originally added here
                     at android.view.ViewRootImpl.<init>(ViewRootImpl.java:392)
                     at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:300)
                     at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
                     at android.app.Dialog.show(Dialog.java:325)
                     at ex.real_project.Register$1.onClick(Register.java:77)

 

에러의 줄은 아래와 같습니다.

 Access_Register.show();


postdelay안쪽에 호출한 부분은, 단순한 다이얼로그 인텐트 호출 문장입니다 ㅠ

그리고 Access_Register.show() 이부분에서 에러가 뜹니다.

 

 else if(!First_Edit.isEmpty() && !Second_Edit.isEmpty() && !Third_Edit.isEmpty())
                {

                    Toast toast = Toast.makeText(getApplicationContext(), "회원가입이 완료되었습니다", Toast.LENGTH_SHORT);
                    TextView Success_Register = (TextView) toast.getView().findViewById(android.R.id.message);
                    Success_Register.setTextColor(Color.BLUE);
                    toast.show();

                    Custom_Dialog2 Access_Register = new Custom_Dialog2(Register.this);
                    Access_Register.setContentView(R.layout.activity_custom__dialog2);

                    TextView tv = (TextView) Access_Register.findViewById(R.id.Custom_TextView);
                    tv.setText("회원가입이 완료되었습니다.");

                    ImageView iv = (ImageView) Access_Register.findViewById(R.id.Thank_You_Img);
                    iv.setImageResource(R.drawable.welcome);

                    Access_Register.show();


                    new Handler().postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            Intent itent = new Intent(getBaseContext(),Login_Activity.class);
                            startActivity(itent);
                        }
                    },3000);


                    finish();
                }

 

Kind카인드 (3,600 포인트) 님이 2016년 12월 4일 질문
@@@@@@@@@@

혹시나 해서, 아래쪽에 Dialog_Custom2에 대한 내용을 적어보겠습니다.



import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
public class Custom_Dialog2 extends Dialog implements View.OnClickListener{

    Button btn;
    public Custom_Dialog2(Context context) {
        super(context);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_custom__dialog2);
        btn = (Button) findViewById(R.id.Custom_Button2);
        btn.setOnClickListener(this);
    }

    public void onClick(View view) {
        if (view.getId() == R.id.Custom_Button2) {
            if (isShowing()) {

                dismiss();
            }
        }
    }
}

1개의 답변

0 추천
 
채택된 답변

안녕하세요

해당 에러는 팝업창등이 show한 후 dismiss 가 안되서 발생되는 내용입니다.

 

new Handler().postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            Intent itent = new Intent(getBaseContext(),Login_Activity.class);
                            startActivity(itent);

                           // 이 부분에 팝업창을 dismiss 하는 코딩이 들어가야 할 것 같습니다.
                        }
                    },3000);

 

수고하세요~

 

히로시 (10,800 포인트) 님이 2016년 12월 5일 답변
Kind카인드님이 2016년 12월 5일 채택됨
...