2014-10-07 2 views
0

У меня есть активность в действии с LocalBroadcastManager, определенная точно так же, как в ответе here, за исключением той только разницы, что она определена в ActionBarActivity.Android получил трансляцию в ActionBarActivity

По какой-то причине, независимо от того, что я пытаюсь, я не могу добраться до приемника onReceive (то есть успешно получая широковещательное сообщение).

Сервис-код:

public class GcmIntentService extends IntentService { 

@Override 
protected void onHandleIntent(Intent intent) { 
    Intent toDrawerActivity = new Intent(syncActionName); 
    String syncType = extras.getString("data"); 
    toDrawerActivity.putExtra("syncType", syncType); 
    System.out.println("sending intent in service"); 
    LocalBroadcastManager.getInstance(this).sendBroadcast(intent); 
} 

}

И код вида деятельности:

public class DrawerActivity extends ActionBarActivity { 
private BroadcastReceiver dataUpdaterReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
    System.out.println("in broadcast receiver"); 
    } 
}; 

protected void onCreate(){ 
... 
... 
LocalBroadcastManager.getInstance(this).registerReceiver(dataUpdaterReceiver, 
     new IntentFilter(GcmIntentService.syncActionName)); 
} 

protected void onDestroy(){ 
    LocalBroadcastManager.getInstance(this).unregisterReceiver(dataUpdaterReceiver); 

} 

} 

Что именно я здесь делаю неправильно?

ответ

2

Ваш такой проблемы из-за вы использовали метод() неправильный параметр для sendBroadcast:

LocalBroadcastManager.getInstance(this).sendBroadcast(intent); 

Оно должно быть:

LocalBroadcastManager.getInstance(this).sendBroadcast(toDrawerActivity); 
Смежные вопросы