2013-10-28 4 views
2

푸시 알림을 받고 내 앱 (onStart()/onStop() 쌍)이 표시 될 때마다 GCMIntentService 클래스의 사용자에게 대화 상자를 표시하려고합니다. 는 (나는 아직도 실제로 내가 한하지만 문제가 있었다, 다음 GCM으로 전환하지 않은, 그래서 나는 일 이전에 다시 전환) 내가 점점 오전 오류가리시버 푸시 알림을 보낼 때 대화 상자를 만들 수 없습니다.

안드로이드입니다

protected void onMessage(Context context, Intent intent) 
{ 
    AlertDialog.Builder builder = new AlertDialog.Builder(context); //issue here 

builder.setMessage("You have a notification").setTitle("Notification"); 
builder.setPositiveButton("dismiss", 
new DialogInterface.OnClickListener() 
{ 
public void onClick(DialogInterface dialog, int id) 
{ 
Intent intent = new Intent(Intent.ACTION_MAIN); 
         intent.addCategory(Intent.CATEGORY_HOME); 
         intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
startActivity(intent); 
} 
}); 

AlertDialog dialog = builder.create(); 
dialog.show(); 
} 

. view.WindowManager $ BadTokenException는 : 창을 추가 할 수 없습니다 - 토큰 널 (null)는 응용 프로그램 내가 아는

이 컨텍스트 오류가 아닙니다이며 구글의 문서 등 ... 에 잘못 작성된하지만 방법은 무엇입니까 ~에 알림을받을 때마다 대화 상자가 어떻게 표시됩니까?

+1

먼저 활동을 시작해야합니다. (그러나 귀하의 활동은 대화 일 수 있습니다.) – njzk2

+0

@ njzk2 그렇다면 현재 어떤 활동이 열려 있는지 알고 싶습니다. 실제로 알림이 오면 임의의 활동이 열리 며 대화 상자가 나타나기를 원합니다. – tony9099

답변

1

대화 상자를 사용하는 대신 활동을 작성하고 주제를 Theme.dialog 또는 그 하위 항목으로 설정하고 onMessage 메소드에서 활동을 시작하십시오.

귀하의 활동이 대화의 목적을 달성하고 문제가 사라질 것입니다.

+0

멋진 아이디어. 시도해보십시오. – tony9099

+1

나는 접근 방식을 시도했다, 그것은 잘 작동한다. (당신은 활동 tho에 새로운 작업의 깃발이 필요하다. 나는 어려운 방법을 배웠다.) ... 그러나 대화 테마를 사용한 나의 활동은 충분한 공간을 차지한다. 나는 단지 작은 버튼을 가지고 있지만 ... (부모 레이아웃의 높이는 내용을 감싸도록 설정되어있다.) – tony9099

+0

네 .. 많은 공간을 차지합니다. 나는 또한 전에 비슷한 애플 리케이션을 개발했다.이 문제가 해결 된 –

관련 문제