Android: активность и сервис связи - PullRequest
0 голосов
/ 24 марта 2012

У меня есть служба, которая должна взаимодействовать с активностью (MyActivity) через BradcastReceiver. Этот BroadcastReceiver объявлен в одно и то же действие так:

    private class MessaggiReceiver extends BroadcastReceiver {
        public static final String ACTION_RELOAD = "it.android.dev.thecode.ACTION_RELOAD";
        @Override
        public void onReceive(Context arg0, Intent intent) {
            if(intent.getAction().equals(ACTION_RELOAD)){
                leggi_act; //Method of MyActivity
            }
        }

    }

но как объявить в Манифесте широковещательную рассылку, содержащуюся в MyActivity? Я использовал этот код вместе с it.android.dev.thecode.MyActivity.MessaggiReceiver

<receiver android:name="it.android.dev.thecode.MyActivity.MessaggiReceiver">
            <intent-filter>
                <action android:name="it.android.dev.thecode.ACTION_RELOAD"></action>
            </intent-filter>
</receiver>

но неправильно, тогда я использовал этот код вместе с it.android.dev.thecode.myactivity $ MessaggiReceiver

<receiver android:name="it.android.dev.thecode.MyActivity$MessaggiReceiver">
                <intent-filter>
                    <action android:name="it.android.dev.thecode.ACTION_RELOAD"></action>
                </intent-filter>
    </receiver>

Спасибо

1 Ответ

1 голос
/ 24 марта 2012

Вам не нужно регистрировать широковещательный приемник в своем манифесте, вместо этого зарегистрируйте его по коду в onResume своей деятельности. Не забудьте отменить регистрацию в onPause, чтобы избежать утечек.

@Override
public void onResume() {
   registerReceiver(mMessageReceiver,
       new IntentFilter("it.android.dev.thecode.ACTION_RELOAD"));
}

@Override
public void onPause() {
   unregisterReceiver(mMessageReceiver);
}

private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
  @Override
  public void onReceive(Context context, Intent intent) {
    Log.d("receiver", "Got broadcast: " + intent.getAction());
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...