gpt4 book ai didi

Android 服务和 UI 线程

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:51:20 25 4
gpt4 key购买 nike

我的应用程序中运行着一个服务..

此服务有一个用于向服务器发送消息的对象和一个获取该对象并使用它的函数。

该对象是从服务初始化的,但是当 UI 获取该对象并使用它时 - 它看起来像是在 UI 线程上使用它..

这是正确的吗?有没有办法让我的对象始终从服务线程运行?

public class ServerMessagesManager extends Service {
private ServerMessagesReceiver serverMessageReceiver;
@Override
public void onCreate() {
super.onCreate();
this.serverMessageReceiver = new ServerMessagesReceiver(app);
}

public ServerMessagesReceiver getServerMessagesReceiver()
{
return serverMessageReceiver;
}
}

最佳答案

使用 IntentService 而不是 Service。如果您在 Service 中进行网络调用,UI 将卡住。因此,请使用 IntentService,因为它使用单独的 Thread

而且您不知道服务器消息何时会检索数据。如果在网络调用仍在进行时访问对象,则可能会抛出 NullPointerException。每当服务器响应时,使用 BroadcastReceiver 触发 Intent

关于Android 服务和 UI 线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14702922/

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