如何创建一个接口以与活动中的服务方法进行交互

时间:2015-10-25 09:58:39

标签: android

我想创建一个接口,该接口将与前台Activity中已经运行的服务进行交互。 即,如果有一个名为 MyService 的服务在后台运行,我想使用名为 MyActivity 的活动在服务中定义的方法,那我该怎么做呢。

3 个答案:

答案 0 :(得分:1)

活动与服务进行通信有多种可能性,反之亦然。

  1. 由Android框架提供的LocalBroadcast接收器,也提供了v4支持库。

  2. 不同流程中服务的AIDL

  3. 处理程序和ResultReceiver或Messenger

  4. 要获取详细信息,请访问以下链接: http://www.vogella.com/tutorials/AndroidServices/article.html

    http://developer.android.com/guide/components/services.html

答案 1 :(得分:0)

You need to make your service bindable.或者更具体地来自Android指南的LocalService

答案 2 :(得分:0)

上面的答案非常贴切......但是如果你对接口有所了解,那么...下面是人们如何使用接口...但是描述了一种更好更优选的方式here < / p>

使用以下函数创建Interface

public interface OnChangeListener {

    void onChange();
}

然后在您的服务中:

private OnChangeListener changeListener;


public void setChangeListener(OnChangeListener changeListener) {
    this.changeListener = changeListener;
}

服务中的某些地方:

changeListener.onChange();

然后从你的Activity做到这一点:

MyService.getInstance(this)
                    .setChangeListener(new OnChangeListener() {
                        @Override
                        public void onChange() {
                            // do something here
                        }
                    });