繁体   English   中英

如何处理几种方法,进行大量计算?

[英]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是在后台执行长时间运行任务的很好的方法。

最好在服务器端进行计算,这样可以减少移动站点的开销。

有几种方法。

  1. 异步执行计算。 Android SDK提供了Handler, IntentSevice, AsyncTask, HandlerThread来异步解决问题。 顺便提一下,建议使用多线程解决繁重的计算。

  2. 让服务器进行计算。 移动设备不适合计算,计算会消耗能量并影响应用程序性能。

我认为您应该使用为此目的而设计的服务 在文档中说:

服务是可以在后台执行长时间运行的操作的应用程序组件。

您应该记住有关在服务中创建新线程的信息。

警告 :服务在其宿主进程的主线程中运行-该服务不会创建自己的线程,也不会在单独的进程中运行(除非您另行指定)。 这意味着,如果您的服务要执行任何CPU密集型工作或阻止操作(例如MP3播放或联网),则应在服务内创建一个新线程来执行该工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM