gpt4 book ai didi

android-如何在与主线程不同的线程中运行服务?

转载 作者:IT王子 更新时间:2023-10-28 23:32:33 24 4
gpt4 key购买 nike

我正在尝试在 android 中开发一个应用程序,该应用程序包含一个读取传感器值多个小时的服务。当我启动服务时,我的设备挂起,所有其他进程都变慢了。为了解决这个问题,我尝试在单独的线程中启动服务,如下所示,但问题仍然存在。

    new Thread(new Runnable() {

@Override
public void run() {
Intent intent=new Intent(getApplicationContext(), SensorService.class);
startService(intent);

}
}).start();

这个线程只在不同的线程中启动服务,但服务在主线程中运行。请有人帮助我如何在单独的线程中运行服务?

最佳答案

应用程序组件(服务、 Activity 等)始终在主线程中运行,无论它们是从哪个线程启动的。请考虑在您的服务中启动线程,或使用 IntentService

在您的特定情况下,您可能会尝试为传感器更改注册一个全局 BroadcastReceiver,这反过来又会启动一个 IntentService 以将新获取的值放入 db,等等

其实,here is the link解决了类似的问题。

同样,这并不是真正的多线程问题。整个任务必须以另一种方式实现。

关于android-如何在与主线程不同的线程中运行服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19556752/

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