Android - 另一个线程中的活动和服务之间的通信

时间:2016-01-12 16:48:44

标签: java android multithreading service communication

我正在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的东西都在主线程中。

有没有办法修复它?

1 个答案:

答案 0 :(得分:0)

常规服务在主线程中运行。

您可以改用IntentService。它是一个带有单个bg线程的作业队列。

如果你坚持使用基础Service课程,那么你将不得不产生你自己的主题。