Как реализовать BroadcastReceiver в классе обслуживания в Android?

Мне нужно реализовать BroadcastReceiver в классе обслуживания, который я создал:

public class MyService extends Service

в этом классе я должен реализовать симуляцию загрузки с помощью Thread-Sleep, когда пользователь нажимает кнопку в классе MyActivity, который реализует sendBroadcas (). Я не могу расширяет класс обслуживания в приемник BroadcastReceiver, как это уже extendes службы. Может ли кто-нибудь помочь мне понять, как реализовать этот механизм?

спасибо

1 ответов


имейте BroadcastReceiver как класс верхнего уровня или как внутренний класс в вашем сервисе. И получите справку о получателе в вашем сервисе. Вот так:

public class MyService extends Service {
    BroadcastReceiver mReceiver;

    // use this as an inner class like here or as a top-level class
    public class MyReceiver extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            // do something
        }

        // constructor
        public MyReceiver(){

        }
    }

    @Override
    public void onCreate() {
         // get an instance of the receiver in your service
         IntentFilter filter = new IntentFilter();
         filter.addAction("action");
         filter.addAction("anotherAction");
         mReceiver = new MyReceiver();
         registerReceiver(mReceiver, filter);
    }
}