LocalBroadcastManager
을 사용할 수 있습니다.
아이디어는 새로운 메시지가 수신 될 때 서비스에서 방송을 보내
class YourService extends GcmListenerService{
@Override
public void onMessageReceived(String from, Bundle bundle) {
...
Intent pushNotification = new Intent("pushNotification");
//put any extra data using Intent.putExtra() method
LocalBroadcastManager.getInstance(this).sendBroadcast(pushNotification);
...
}
}
지금 당신의 조각에 그것을받을 당신의 조각에를받을 수 있습니다 :
class TaskFragment extends Fragment{
private BroadcastReceiver mBroadcastReceiver;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("pushNotification")) {
// new push message is received
//update UI
handlePushNotification(intent);
}
}
};
...
}
@Override
protected void onResume() {
super.onResume();
// registering the receiver for new notification
LocalBroadcastManager.getInstance(getActivity()).registerReceiver(mBroadcastReceiver,
new IntentFilter("pushNotification"));
}
@Override
protected void onDestroy() {
//unregister receiver here
LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(mBroadcastReceiver);
super.onDestroy();
}
}
당신이 gist를 참조하거나 찾을 수 있습니다 그것에 관한 웹 튜토리얼.
큰 건 아니지만 (이) getActivity()로 변경해야합니다. –
지적 해 주셔서 감사합니다. 답변이 업데이트되었습니다. –