有人可以告诉我如何将服务绑定到活动的示例。例如,服务在后台运行,并且根据其工作方式,它将消息发送到活动,并且活动侦听此消息。我只能处理简单的服务
public class TimeService extends Service {
//
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int start_id) {
return START_NOT_STICKY;
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
答案 0 :(得分:1)
绑定服务可能会变得非常复杂,请选择方法。
http://developer.android.com/guide/components/bound-services.html
扩展ibinder 仅适用于同一进程中的服务。因此,如果您的目标是构建一个在其自己的进程中运行的超级内存高效服务,则无法使用它。
使用信使 http://developer.android.com/guide/components/bound-services.html#Messenger Eclipse ADT LINT将显示警告处理程序应该是静态的。我通过在onCreate中设置用于进行应用程序调用的上下文使用weakReference来使其成为静态。
private static WeakReference<Context> weakContext = null;
public void onCreate() {
ServiceLocationRecorder.weakContext = new WeakReference<Context>(
getApplicationContext());
}
使用以下代码获取上下文。
Context context = weakContext.get();
if (context != null) {
AIDL http://developer.android.com/guide/components/aidl.html 我试过AIDL并且构建需要更长的时间,所以如果你有一个像我这样的慢机器,你会对构建时间感到失望,但它确实有效。