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

GCM 메세지수신 후 AlertDialog 에서 액티비티 못찾음

0 추천

안녕하세요.

GCM 을 통해서 메세지를 수신 받아 화면에 

PopupActivity 를 호출하고 그 액티비티안의 PopupDialog 를 통해 "보기" "닫기" 버튼을 구현하였습니다.

 

보기 클릭 시 소스 

 

alertDialog.setPositiveButton("보기", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog,int which) {

            

            Intent intent = (Intent)new Intent();

            

            Intent intent = new Intent(PopupActivity.this, MainActivity.class);

 

               

            startActivity(intent);

            ((MainActivity)(MainActivity.mContextReload)).setInit();

            

            finish();

            }

        });

 

내용은 위와 같은데요.

 

앱을 띄운 후 하루 정도 지난 후에 메세지를 받아 "보기" 버튼을 클릭하면 에러가 발생합니다.

 

 

안드로이드가 시간이 지나면 액티비티를 종료 시켜 버려서 문제가 되는거 같은데 해결 방법이 없나요 ?? 

 

2단무지 (220 포인트) 님이 2013년 10월 13일 질문

2개의 답변

0 추천

((MainActivity)(MainActivity.mContextReload)).setInit();

액티비티 객체를 static 변수로 저장해놓고 쓰시는 것 같은데, 매우 안 좋은 방법입니다.

 

 

 

익명사용자 님이 2013년 10월 13일 답변
0 추천

핸들러에서 다이얼로그 호출하셔야 되구요.

아마 서비스에서 액티비티 호출시 

ERROR/AndroidRuntime(): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity   context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want? 

이런 로그가 남으면 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

추가해주시면 해결될듯 싶네요.

얼마전에 같은 기능 구현하느라 애를 먹어서 기억이 잘나네요

아르샤빈 (1,340 포인트) 님이 2013년 10월 19일 답변
...