[英]How to handle several methods, doing heavy calculations?
在我的应用程序中,我导入gpx和kml文件以在地图上显示轨迹和航点。 对于此操作,我使用大约5种方法。 一切正常,除非我尝试使用exfilechoser导入多个长gpx / kml轨道。 屏幕变黑几秒钟,logcat提示:跳帧(> 600)。 如何获得UI的这些计算? 或如何使用约5种方法使用AsyncTask? 这可能吗?
通过查看您的问题,我建议您使用具有Java normal multi threading concept
handler
。 我不认为Asyntask
是在后台执行长时间运行任务的很好的方法。
最好在服务器端进行计算,这样可以减少移动站点的开销。
有几种方法。
异步执行计算。 Android SDK提供了Handler, IntentSevice, AsyncTask, HandlerThread
来异步解决问题。 顺便提一下,建议使用多线程解决繁重的计算。
让服务器进行计算。 移动设备不适合计算,计算会消耗能量并影响应用程序性能。
我认为您应该使用为此目的而设计的服务 。 在文档中说:
服务是可以在后台执行长时间运行的操作的应用程序组件。
您应该记住有关在服务中创建新线程的信息。
警告 :服务在其宿主进程的主线程中运行-该服务不会创建自己的线程,也不会在单独的进程中运行(除非您另行指定)。 这意味着,如果您的服务要执行任何CPU密集型工作或阻止操作(例如MP3播放或联网),则应在服务内创建一个新线程来执行该工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.