gpt4 book ai didi

java - 用于 ServiceConnection 回调的线程 (Android)

转载 作者:行者123 更新时间:2023-11-29 09:25:18 26 4
gpt4 key购买 nike

我正在开发绑定(bind)到本地服务的 Activity (在 Activity 的 onCreate 中):

bindService(new Intent(this, CommandService.class), svcConn, BIND_AUTO_CREATE);  

我希望能够在我的生命周期方法中通过 IBinder 调用方法,但不能确定是否在这些方法之前调用了 onServiceConnected。我正在考虑通过在 ServiceConnection 实现中添加一个排序队列来处理这个问题,以便在建立连接后执行方法调用(命令模式)。

我的问题是:

  1. 这是不是很愚蠢,还有更好的方法吗? :)
  2. 是否有关于哪个线程将用于执行 ServiceConnection 回调的规范?更重要的是,我是否需要担心同步队列数据结构?

编辑 - 类似于:

public void onServiceConnected(ComponentName name, IBinder service) {
dispatchService = (DispatchAsync)service;

for(ExecutionTask task : queue){
dispatchService.execute(task.getCommand(), task);
}
}

最佳答案

Are there any specification for which thread will be used to execute the ServiceConnection callbacks?

它应该像任何其他回调一样在主应用程序线程上调用。

More to the point, do I need to worry about synchronizing a queue datastructure?

这取决于您将对象添加到队列的位置。如果它仅来自主应用程序线程,那么应该没有争用,AFAIK。

关于java - 用于 ServiceConnection 回调的线程 (Android),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2807019/

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