我已经实现了一个后台服务,可以将我的应用程序中的不同数据读写到后台服务器并写入数据库。
在我的第一个版本中,我使用了两个服务。一个人在队列中创建了一个条目,以了解接下来应该完成的任务。其他服务执行了该任务。任务是:调用PHP脚本以使用json读取或写入数据。
所以在重构过程中,我的做法不同。我现在有一个服务,每3秒运行一次,并创建一个执行任务的线程。执行数据传输的代码没有改变。
但是现在,代码运行缓慢,我也有内存泄漏。所以我的问题是:作为一个线程在android中处理不同的服务?那么服务获得更多的CPU或更多的内存?
任何想法,为什么我的第二个解决方案更慢?
答案 0 :(得分:0)
问题不在于应用程序的缓慢。工作线程不由Android系统管理,您应该在不再需要它们时终止它们。这意味着在 Activity.onStart()中创建的线程应在 Activity.onStop()中终止。否则,每次活动开始时您都将创建新线程,从而导致线程泄漏。这对性能来说非常具有破坏性。但在你的情况下,没有什么可以说,因为我不知道操作的执行方式和方式。有时代码中使用的逻辑可能会导致时间消耗。