为什么要使用Android服务?

jon*_*ney 23 service android

我想知道当你需要做很多事情来访问任何公共方法或从一个服务(如更大的List对象)获取大量数据时,使用android服务进行后台工作有什么意义.

为什么不只是使用一个简单的POJO,如果你喜欢并在不使用AIDL创建接口,绑定到服务等等的情况下获得对其公共方法的访问权限,则可以在单独的线程中为你做背景?

从服务类访问方法需要做太多的工作,或者这真的不是android中服务类的重点?

我开发了一个Android服务类,它从一个Web服务获取xml结构中的100个项目,然后我将其解析为POJO然后存储在List中但我很难找到一种方法将此List发送回调用此服务的活动.

我已经阅读了有关使用parcebales对象的信息,但是所有的intent.putExtra都有大小限制,所以我将来可能会遇到问题.

我正在考虑放弃Android服务,我很快就发现了为什么我不喜欢在第一时间使用它们:(

一个简单的 SomeBackgroundPojo backroundTask = new SomeBackgroundPojo(); backgroundTask.getData();

看起来比处理parcelables,可实现的对象,AIDL,绑定etcc等更容易,只是为了实现我上面输入的两行代码:(

Pon*_*gge 19

鸡蛋里挑骨头:运行一个线程后台任务的对象不正是什么通常是由意味着简单Java对象.

如果您不关心正在执行的工作,如果其请求的活动或应用程序被关闭,那么无论如何都要避免服务.服务的一个要点是,当用户离开活动时,它们可以保持活跃状态​​:如果您只是在填充UI ListView,只需使用例如AsyncTask,就像之前的问题中所讨论的那样.

  • 然后一项服务是过度和笨拙的.检查先前问题的答案以获得更多替代方案. (3认同)