У меня есть служба, которую я хочу обновить на дисплее на мероприятии. У меня уже настроено явное намерение, которое я использую для запуска этой операции, если она не запущена, и я добавил широковещательный приемник к своей деятельности в форме:
public BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.d(LOG_NAME, "Received broadcast");
}
};
Но он никогда не получает никаких передач. Я подозреваю, что это связано с тем, что мое явное намерение - это MyClass.class(который не является самим получателем), а не фактическим получателем, который является членом. Есть ли у кого-нибудь предложения о том, возможно ли это с явным намерением? Я мог бы использовать неявное намерение, но это кажется немного расточительным, поскольку это только когда-либо происходит в определенном классе.
Я думаю, что у вас может быть отдельный BroadcastReceiver, который получает явное вещание и обновляет общую настройку, а ваша активность содержит onSharedPreferenceChangeListener, который будет выполнять обновление активности.
Таким образом, это не сработает. Вы должны иметь свой BroadcastReceiver как отдельный класс.