Intereting Posts
Как установить радиокнопку по умолчанию в радиогруппе с Android Как реализовать эффект масштабирования для представления изображения в Android? Переключение пробных версий и pro с помощью приложений Android в Eclipse: как сделать это менее болезненным? Android: вкладки в BOTTOM Ошибка коммутатора. Eclipse IDE для разработки Android на Mac: изменение соответствия рабочей области JRE 1.7 Как получить доступ к представлениям внутри макета при повторном использовании его несколько раз? Получить положительную кнопку в DialogPreference Пример S3 Transfer Manager показывает ошибку: неавторизованный доступ не поддерживается Parse.com datastore не закрепляет более одного несохраненного объекта Android: ошибка com.parse.ParseException: в этой операции должно быть указано как минимум одно поле ID (installationId, deviceToken) Получение ошибки в webview на сэндвич с мороженым DrawableCompat setTint не работает с API 19 Должен ли я звонить .close () на SQLiteDatabase и SQLiteOpenHelper Почему я не должен устанавливать layout_width и layout_height в стиле? Match_parent не работает для ListView, если ListView находится внутри NestedScrollView

Как отправить данные в текущую активность из широковещательного приемника,

Я могу получать сообщение C2DM в порядке, но я хочу отправить данные в текущую активность, то есть когда работа выполняется, если получатель получает сообщение C2DM, он должен отправить данные в текущую активность. Код получателя (без ошибок в коде):

public class C2dmreceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); Log.w("C2DM", "Message Receiver called"); if ("com.google.android.c2dm.intent.RECEIVE".equals(action)) { final String payload = intent.getStringExtra("key1"); Log.d("C2DM", "message = " + payload ); } }} 

Я попытался сделать это внутри этой операции, пытаясь зарегистрировать приемник в активности, чтобы получатель мог отправлять данные, а текущая активность могла получать данные: –

 C2dmreceiver c2dmr = new C2dmreceiver(); Registration.this.registerReceiver(c2dmr, new IntentFilter()); 

Я не знаю, что помещать внутри IntentFilter (), а также что еще мне нужно вставить в код действия и код получателя, чтобы во время работы и подачи какого-либо сообщения C2DM приемник мог отправлять Данные для текущей активности.

Поэтому, пожалуйста, скажите мне код, который должен включить в действие и в приемник, а также может быть в манифесте, чтобы данные из приемника могли быть отправлены на текущую активность.

Любые советы приветствуются.

Solutions Collecting From Web of "Как отправить данные в текущую активность из широковещательного приемника,"

Прежде всего, это не лучшая идея подписаться на приемник c2dm. Сделайте это в манифесте. Для передачи данных в действие вы можете создать статическое поле string в Activity и установить там String.

Вы можете сделать что-то вроде этого:

В Activity

 public static YourActivity mThis = null; @Override protected void onResume() { super.onResume(); mThis = this; } @Override protected void onPause() { super.onPause(); mThis = null; } 

В вашем BroadcastReceiver :

 @Override public void onReceive(Context context, Intent intent) { ... if (YourActivity.mThis != null) { ((TextView)YourActivity.mThis.findViewById(R.id.text)).setText("received c2dm"); } else { ... }