gpt4 book ai didi

Android 使用 Local Service 的目的是什么

转载 作者:可可西里 更新时间:2023-11-01 11:42:16 30 4
gpt4 key购买 nike

Android官方开发者指南中Bound Service的章节,有一个扩展Binder的本地Binder的例子,代码是这样的:

public class LocalService extends Service {
// Binder given to clients
private final IBinder mBinder = new LocalBinder();
// Random number generator
private final Random mGenerator = new Random();

/**
* Class used for the client Binder. Because we know this service always
* runs in the same process as its clients, we don't need to deal with IPC.
*/
public class LocalBinder extends Binder {
LocalService getService() {
// Return this instance of LocalService so clients can call public methods
return LocalService.this;
}
}

@Override
public IBinder onBind(Intent intent) {
return mBinder;
}

/** method for clients */
public int getRandomNumber() {
return mGenerator.nextInt(100);
}

特别是客户端调用的方法:

/** method for clients */
public int getRandomNumber() {
return mGenerator.nextInt(100);
}

我有点疑惑,这么简单的action,为什么要放到Service上?更何况这个Service只是一个本地服务,只能在当前应用进程中使用,不能用于其他应用。当然显然这个方法可以作为公共(public)方法放入任何类中,这对于上述情况就足够了。

我可以理解将诸如文件下载代码放入服务(或者IntentService更合适)的目的,这适合服务的特点:运行长时间处理代码。

但我不明白的是为什么我们需要这样的本地服务?

最佳答案

需要本地绑定(bind)服务来处理客户端-服务器情况

假设您有这样一种情况,您需要多次执行一些长时间的操作并且还需要它的结果并在您的 Activity 中对结果执行一些操作。

在这种情况下,您可以绑定(bind)服务并使用其方法,还可以使用回调来获取结果并在 Activity 中执行操作。

关于Android 使用 Local Service 的目的是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35787118/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com