Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android服务中运行两个线程_Android_Multithreading_Service_Spreadsheet - Fatal编程技术网

在Android服务中运行两个线程

在Android服务中运行两个线程,android,multithreading,service,spreadsheet,Android,Multithreading,Service,Spreadsheet,我想创建一个服务,当启动时,初始化与google电子表格的连接,然后定期从数据库向电子表格发送数据 是否可以创建两个线程: 一个连接到google电子表格,另一个检查数据库中的更改并更新电子表格 我正在考虑从onCreate运行第一个线程(连接到google电子表格),从onStart命令运行第二个线程。这是坏习惯吗?有人对我如何做到这一点有任何反馈吗 谢谢,如果我说的不清楚,请告诉我。为什么需要运行两个线程?您的工作似乎是按顺序进行的:首先从数据库中获取数据,然后将其发布到电子表格中。如果您在

我想创建一个服务,当启动时,初始化与google电子表格的连接,然后定期从数据库向电子表格发送数据

是否可以创建两个线程: 一个连接到google电子表格,另一个检查数据库中的更改并更新电子表格

我正在考虑从onCreate运行第一个线程(连接到google电子表格),从onStart命令运行第二个线程。这是坏习惯吗?有人对我如何做到这一点有任何反馈吗


谢谢,如果我说的不清楚,请告诉我。

为什么需要运行两个线程?您的工作似乎是按顺序进行的:首先从数据库中获取数据,然后将其发布到电子表格中。如果您在获取数据库数据时已经通过Google Docs的身份验证,您可能会节省一两秒钟的时间,但是如果需要在后台服务中运行,它将不可见。而且,由于这似乎只需要不时运行,因此您应该使用
AlarmManager
,安排您的服务以特定的时间间隔启动,并让它在完成工作后自行关闭。考虑使用<代码> ItnService < /代码>,它将启动后台线程来执行工作并自动关闭。 第一个线程的用途是什么?它将做什么?第一个线程建立到谷歌电子表格的连接。大约30-40秒。第二种方法只是将数据添加到电子表格中。IntentService优于Service的好处是什么?服务不会自动启动工作线程,并且不会在完成后自动关闭(您需要调用
stopSelf()
)。IntentService使用队列处理它接收的请求,并在后台线程中(一个接一个)运行这些请求,完成后自动关闭。基本上它做了正确的事情,你不必担心细节。谢谢你,尼古拉,我真的很感谢你的帮助。