我想创建一个接口,该接口将与前台Activity中已经运行的服务进行交互。 即,如果有一个名为 MyService 的服务在后台运行,我想使用名为 MyActivity 的活动在服务中定义的方法,那我该怎么做呢。
答案 0 :(得分:1)
活动与服务进行通信有多种可能性,反之亦然。
由Android框架提供的LocalBroadcast接收器,也提供了v4支持库。
不同流程中服务的AIDL
处理程序和ResultReceiver或Messenger
要获取详细信息,请访问以下链接: 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
}
});