2017-09-11 1 views
1

사용자가 푸시 알림을 클릭 한 후 표시 할 사용자 지정 대화 상자가 하나 있습니다. 여기에 FirebaseMessagingService을 사용하고 있습니다.푸시 알림을 클릭 한 후 응용 프로그램이 포 그라운드로 전환 될 때 사용자 지정 대화 상자를 표시하는 방법

다음은 푸시 알림을 수신하기위한 코드입니다. 나는 의도를 만들고 방송하고있다. 내 기본 활동에서

@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 
    super.onMessageReceived(remoteMessage); 

    if (remoteMessage.getData().size() > 0) { 
     Intent intent = new Intent(Cons.INTENT_FILTER); 

     try { 
      // getting my data here 
      Bundle bundle = new Bundle(); 
      bundle.putSerializable(key, data); 
      intent.putExtras(bundle); 
     } 
     catch (Exception e){ 

     } 
     sendBroadcast(intent); 
    } 

} 

나는 의도를 받고 대화 상자를 표시 BroadcastReceiver을 사용하고 있습니다.

private BroadcastReceiver myReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 

     FragmentTransaction transaction = getFragmentManager().beginTransaction(); 
     DialogFragment dialogFragment = new CustomDialog(); 
     Bundle bundle = new Bundle(); 
     // I am getting data from intent. 
     bundle.putSerializable(key, data); 
     dialogFragment.setArguments(bundle); 
     dialogFragment.show(transaction, "dialog"); 
    } 
}; 

앱이 포 그라운드에있는 경우 모든 데이터가 표시된 대화 상자가 표시됩니다. 앱이 백그라운드에 있거나 앱이 실행되고 있지 않으면이 코드가 작동하지 않습니다.

나는 응용 프로그램의 실행 상태를 얻고 그에 따라 조건을 적절하게 넣는 솔루션을 찾으려고 노력했습니다. 나는 다른 해결책이 있는지 알고 싶다. 감사합니다. .

답변

0

간단한 활동을 대화 상자로 만들고 사용하십시오. 활동에

설정 대화 테마 : 나는 대화로 내 활동을 보여주고 싶지 않아

<activity name=".MyDialogActivity" android:theme="Theme.AppCompat.Dialog"/>

+0

. 내 질문을주의 깊게 읽으십시오. 감사. – Pooja

+0

귀하의 요구 사항을 알고 있습니다. 활동없이 대화 상자를 표시 할 수 없습니다. DialogFragment 대신 활동 작성. –

+0

나는 이미 활동을하고있다. 두 번째 코드는 활동에 있습니다. – Pooja

관련 문제