我必须创建一个应用程序,我必须显示一个地图(我正在使用Osmdroid)并读取一个包含地理坐标列表的文本文件。我必须阅读一对纬度和经度并在地图上显示它,并在一秒钟后阅读下一对并在地图上显示,依此类推。
我正在考虑在Thread
中阅读该文件,但我发现我无法对Thread
中的用户界面做任何事情,所以我想我无法在地图上显示位置。
然后我发现使用AsyncTask
我可以修改用户界面,但在文档中说这是用于简短的任务,而我想做的事可能需要很长时间。
在AsyncTask
文档中说如果需要保持线程长时间运行,强烈建议您使用java.util.concurrent包提供的各种API,例如Executor, ThreadPoolExecutor和FutureTask ,但我不知道何时使用这些类,如果其中一个(或任何其他)可以帮助我做我想要的:读取文本文件的一行并显示位置地图。
答案 0 :(得分:0)
您可以使用AsyncTask
类在后台加载数据并轻松更新UI
或者尝试使用Loaders
,效率高于AsyncTask
阅读此链接并在youtube上搜索AsyncTask或Loaders
请参阅
中的此示例答案 1 :(得分:0)
如果从另一个线程(可能是AsyncTask
)获取数据,那么您将负责通过各种活动或片段生命周期事件(例如{{1})管理线程和UI线程。和配置更改
使用Loaders