在Android中实现后台操作的正确方法

在Android中实现后台操作的正确方法,android,multithreading,service,android-asynctask,timertask,Android,Multithreading,Service,Android Asynctask,Timertask,在我的应用程序中,我需要以下功能,我不确定是否应该使用服务、线程、异步任务等 我得到了一个用户可以控制“后台”操作的活动 后台操作每1秒向系统发送一个模拟位置。 另一个后台操作每30秒更改一次位置 在活动和其他服务/线程中,我希望能够启动/停止此操作,并在后台操作运行时向其发送新数据(位置) Atm我得到了一个从活动中获取所有数据的服务,从这个服务中我启动了改变位置的timertasks。服务正在控制timertasks 我的问题是: 这种方式会消耗大量内存和电源,因此我想知道是否有更好的解决方

在我的应用程序中,我需要以下功能,我不确定是否应该使用服务、线程、异步任务等

我得到了一个用户可以控制“后台”操作的活动

后台操作每1秒向系统发送一个模拟位置。 另一个后台操作每30秒更改一次位置

在活动和其他服务/线程中,我希望能够启动/停止此操作,并在后台操作运行时向其发送新数据(位置)

Atm我得到了一个从活动中获取所有数据的服务,从这个服务中我启动了改变位置的timertasks。服务正在控制timertasks

我的问题是:
这种方式会消耗大量内存和电源,因此我想知道是否有更好的解决方案…

请查看此链接,我想它可能会帮助您:)Ty!我应该保留一个用于处理活动数据的服务并启动ScheduledThreadPoolExecutor吗?是的,这是根据我的想法更好的实现方式:)当我在应用程序上做一些压力测试时,我甚至让手机崩溃了几个:内存不足:堆大小=524288KB,分配=519900KB,限制=196608KB,在多个进程中,Proc Limit=524288KB。你知道是什么导致了这种严重的内存使用吗?我的代码中没有任何位图-只有TimerTask和基于位置的函数(提供程序、位置等)可以请您在帖子中发布错误,以便我可以帮助您吗