2016-10-31 4 views
0

Firebase Push Notification에서 작업 중이며 MainActivity을 닫고 싶습니다. onMessageReceived()이 호출되면 응용 프로그램이 완료되어야합니다. 나는 또한 Context을 전달하고 있지만 작동하지 않습니다. 이 경우 신청서가 발송되면 알림을 보냅니다. 내 코드 : 트리거 될 때Firebase에서 푸시 알림을 사용하여 활동을 닫는 방법?

MainActivity.java는

public class MainActivity extends FragmentActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     new FirebaseMessagingService(MainActivity.this); 
    } 
} 

FirebaseMessagingService.java는

public class FirebaseMessagingService extends 
      com.google.firebase.messaging.FirebaseMessagingService { 

    Context context; 
    public FirebaseMessagingService(Context ctx) { 
     this.context = ctx; 
    } 

    @Override 
    public void onMessageReceived(RemoteMessage remoteMessage) { 
     context.finish(); 
    } 
} 

답변

3

당신은이 BroadcastReceiverMainActivity에서, 즉 finish()를 호출 정의 할 수 있습니다 :

private final BroadcastReceiver finishReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     finish(); 
    } 
}; 
당신은 단지 onMessageReceived()에서 지역 방송을 보내야 할

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    // ... 

    LocalBroadcastManager.getInstance(getApplicationContext()) 
     .registerReceiver(finishReceiver, 
      new IntentFilter(FirebaseMessagingService.ACTION_FINISH)); 
} 

@Override 
protected void onDestroy() { 
    LocalBroadcastManager.getInstance(getApplicationContext()) 
     .unregisterReceiver(finishReceiver); 
    super.onDestroy(); 
} 

을 그리고 :

public static final String ACTION_FINISH = "yourpackagename.ACTION_FINISH"; 

@Override 
public void onMessageReceived(RemoteMessage remoteMessage) { 
    LocalBroadcastManager.getInstance(getApplicationContext()) 
     .sendBroadcast(new Intent(ACTION_FINISH)); 
} 

을 (FirebaseMessagingServiceContext 서브 클래스 필요에이 없을 때 적절한 16,

등록은/그 등록을 취소 다른 Context 인스턴스를 전달하십시오)

관련 문제