1.png

(클릭 하시면 크게 보입니다.) 

 

일단 구글링 해본 결과 dialog를 dismiss() 시켜주지 않아서 뭔가가 누수된다고 하더라구요.

그러면서 onPause()에 dismiss()를 호출해라, onDestroy()에서 dismiss()를 호출해라, onStop()에서 dismiss()를 호출해라라고 하던데..

결국 다 안됐습니다.

아래는 dialog 생성 코드입니다.

 

private final void saveNote() 

 {
        if (mCursor != null)
        {
            final ContentValues values = new ContentValues();

            values.put(NoteColumns.MODIFIED_DATE, System.currentTimeMillis());

            final String text = mText.getText().toString();
            int length = text.length();

            if (mState == STATE_INSERT)
            {
                if (length == 0)
                {
                    finish();
                    return;
                }
                String title = text.substring(0, Math.min(30, length));
               
                if (length > 30)
                {
                    int lastSpace = title.lastIndexOf(' ');
               
                    if (lastSpace > 0)
                    {
                        title = title.substring(0, lastSpace);
                    }
                }

                AlertDialog.Builder builder = new AlertDialog.Builder(NoteEditor.this);
                final EditText input = new EditText(NoteEditor.this);
                input.setText(title);
                input.selectAll();
                builder.setCancelable(false);
                builder.setTitle(R.string.title_edit_title);
                builder.setView(input);
                builder.setPositiveButton(R.string.button_ok, new DialogInterface.OnClickListener() {
                 public void onClick(DialogInterface dialog, int id)
                 {
                  
                  values.put(NoteColumns.TITLE, input.getText().toString().trim());
                  values.put(NoteColumns.NOTE, text);

                  try
                  {
                   getContentResolver().update(mUri, values, null, null);
                  }
                  catch (NullPointerException e)
                  {
                   Log.e(TAG, e.getMessage());
                  }
                  
                  finish();
                 }
                });
                builder.show();
                return;
            }

            values.put(NoteColumns.NOTE, text);

            try {
                getContentResolver().update(mUri, values, null, null);
            } catch (NullPointerException e) {
                Log.e(TAG, e.getMessage());
            }
            finish();
        }
    }

 

메모장인데요, 백키를 누르면 메모의 제목을 입력하라는 dialog 창을 띄우게 구현되어있습니다.

저 dialog 때문에 별 짓을 다해도 계속 위에 언급한 에러가 뜨네요.

아시는 분은 제발 도움 좀 주세요..ㅠ_ㅠ