我需要您的想法。我正在寻找的是一个任务或服务,运行在后台(无UI),能够执行以下操作:Android:用于后台处理的组件,必须手动启动
- 它不应该永久运行,只有当它被调用时。有两个可能的来电者:
- gui/touch应用程序。用户可以输入数据,应用程序将这些数据传递给数据持久存储的后台服务。这可能随时发生,并定期在Android操作系统上随机发生。也许AlarmManager是一个合适的方法。当定期(例如,每30秒)调用一次该服务时,它应该处理在步骤1中存储的数据。处理完成后,它应该停止自己以节省电池。
换句话说: 用户不触发处理,用户只是对输入负责。 AlarmManager然后定期触发处理。
Android服务类是适合的还是有更好的方式去?
如果是,我在理解服务类时遇到问题。根据文档,它没有自己的进程,但在主机进程中运行。这是否会导致问题?所以有时候,phonegap插件(传递数据)是主机进程,有时报警代码是主机进程,或者我错了?我的意思是该服务没有主要应用程序,它可以从不同的位置调用独立的东西。
感谢
谢谢
感谢,IntentService看起来很有希望,但我仍然有问题unettanding它。在传统Java中,当方法A从线程1调用时,方法A在线程1中运行。如果从线程2调用同一对象的相同方法A,则A突然在线程2中运行。然后我必须知道我的对象中的数据。 IntentService的行为如何?排队总是发生,不管它被调用哪个线程?服务中的数据是否保存? – ceran 2012-02-02 14:56:06
我已经稍微编辑了我的答案,以解释Intents如何排队并且全部在单个工作线程上运行。只要您只在工作线程(onHandleIntent(Intent)方法)内处理它,您的数据就应该是安全的。 – mcnicholls 2012-02-02 15:03:19
另外请确保考虑@herom在他的回答中所说的话。 – mcnicholls 2012-02-02 15:05:25