我正在开发一个Android应用程序,我偶然发现了一些我不知道最好的解决方法。
我想要实现的是,当用户登录应用程序时,如果设备连接到网络,我想启动一个线程(哪种网络无关紧要)
线程应该每10分钟执行一次操作。
这个线程需要做的是,通过列表循环,更精确的队列。 该队列将具有对象,并且当存在可用连接时,基于队列中的对象,执行。
队列将通过应用程序流填充。 例如填写问题。
答案需要与服务器同步。每个问题都可以包括来自摄像头的图片等,所以我想将某些数据保存为对象,将它们放入队列,并让一个线程处理http请求。这样就不会阻止UI。尽可能进行同步非常重要。
我想要避免的是让我的APP除了另一个进程。这就是我没有使用过服务的原因。或者我是否会错过理解整体服务的概念?
是否有特定的队列对象或列表? 我希望循环通过队列列表,该列表可以在程序处于活动状态时随时填充,当列表完全为空时,使用thread.sleep like方法。
请留下关于如何使用此方法的提示和提示。
答案 0 :(得分:1)
服务不是它自己的进程......来自Documentation:“服务不一个单独的进程.Service对象本身并不意味着它正在运行自己的过程;除非另有说明,否则它与它所属的应用程序运行的过程相同。“
服务确实是您所谈论的最佳选择。您在服务中生成自己的线程,然后执行以下操作:检查队列中的对象并将任何内容发送到服务器(因为您已经不在UI线程上,如果需要,可以执行此操作而不生成另一个线程) 。如果队列为空,请使用Timer来安排对上载方法的另一次调用。