如何在Android中的服务类中实现BroadcastReceiver?

Dil*_*ali 12 android android-service android-broadcast

我需要在我创建的Service类中实现BroadcastReceiver:

public class MyService extends Service
Run Code Online (Sandbox Code Playgroud)

在这个类中,当用户按下实现sendBroadcas()的MyActivity类中的按钮时,我必须使用Thread - Sleep实现Simulation of Download.我无法将Service类扩展为BroadcastReceiver,因为它已经扩展到Service.任何人都可以帮我弄明白如何实现这种机制?

谢谢

Ste*_*ett 23

将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);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 拯救了我的一天!...永远不要忘记在 onPause 或 onDestroy 中`unregisterReceiver(mReceiver);` (2认同)