如何在 Android 的服务类中实现 BroadcastReceiver? [英] How do I implement a BroadcastReceiver in a Service Class in Android?

查看:40
本文介绍了如何在 Android 的服务类中实现 BroadcastReceiver?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I need to implement BroadcastReceiver in a Service class I have created:

public class MyService extends Service

在这个类中,当用户按下实现 sendBroadcast()MyActivity 类中的按钮时,我必须通过使用线程 - 睡眠来实现下载的模拟.我无法将 Service 类扩展到 BroadcastReceiver,因为它已经扩展到 Service.谁能帮我弄清楚如何实现这个机制?

In this class I have to implement a simulation of download by using a Thread - Sleep when the user presses the button in the MyActivity class which implements sendBroadcast(). I cannot extend the Service class to BroadcastReceiver as it is already extends to Service. Can anyone help me to figure it out how to implement this mechanism?

推荐答案

将 BroadcastReceiver 作为顶级类或作为服​​务中的内部类.并在您的服务中获取接收器的参考.像这样:

Have the BroadcastReceiver as a top-level class or as an inner class in your service. And get a reference of the receiver in your service. Like this:

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);
    }
}

这篇关于如何在 Android 的服务类中实现 BroadcastReceiver?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆