我正在Android中编写跟踪应用程序。
我有一个Service实现了LocationListener,它可以处理所有带位置和写入数据库的东西,以及Activity。
我想在新线程中运行Service以优化我的应用。我还要发送从服务到活动的双方消息,这将显示有关位置的信息。
我绑定服务,就像Bind to Service部分中提到的那样,并使用Messenger实现。接下来我试着这样做:
Thread t = new Thread(){
public void run(){
bindService(new Intent(this, GPSLogger.class), mConnection, Context.BIND_AUTO_CREATE);
}
};
t.start();
应用程序正在运行,但所有GPSLogger的东西都在主线程中。
有没有办法修复它?
答案 0 :(得分:0)
常规服务在主线程中运行。
您可以改用IntentService
。它是一个带有单个bg线程的作业队列。
如果你坚持使用基础Service
课程,那么你将不得不产生你自己的主题。