gpt4 book ai didi

android - 从 Activity 开始在新线程中启动服务是件好事吗

转载 作者:搜寻专家 更新时间:2023-11-01 09:28:21 27 4
gpt4 key购买 nike

new Thread(new Runnable(){
@Override
public void run () {
Intent firstServiceIntent=new Intent(getApplicationContext(),MyService.class);
}
}).start();

我必须在服务中执行后台位置更新。我在服务中使用了 LocationListner,它经常调用 onLocationChanged(),这会阻塞我的 UI 线程。如果我在 onLocationChanged() 中使用创建线程,则每次调用此方法时都会产生一个新线程。所以,我正在考虑在新线程中创建整个服务,而不是在 onLocationChanged() 中创建线程。这是一个好的解决方案还是最好的方法?感谢您的帮助。

最佳答案

如果您希望您的服务在后台线程上运行,那么您有两个选择:

  1. 使用由 Android 操作系统在后台线程上自动运行的 IntentService。您在 IntentService 中所做的一切都将在后台线程上运行。你不需要做任何线程。

  2. 使用标准的 Android Service 并在要执行工作的服务中实例化 new Thread()。标准的 Android Service 默认在主线程上运行,因此它会阻塞您的 UI。这就是您必须自己处理线程的原因。

更多信息在这里: Android Services

关于android - 从 Activity 开始在新线程中启动服务是件好事吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49350919/

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