在Android中暂停和恢复异步任务

时间:2015-11-05 09:56:32

标签: android android-asynctask

我有一个Asynctask,它持续运行以获得具有特定时间间隔的地理坐标系。它一直运行直到用户退出活动,但我有一个暂停按钮,它将暂停asynctask和一个恢复按钮,它将从暂停的位置恢复asynctask。那怎么做。

http://i.stack.imgur.com/3SomI.png

2 个答案:

答案 0 :(得分:0)

你应该知道AsyncTask通常用于需要很长时间才能完成的任务,在主线程上被认为是受限制的任务。 这就是为什么它用于http连接到服务器的例子。 我也读过那个方法doInBackground无法访问UI,所以当你从方法内部更新进度条时它不会工作,而是你可以从onPreExecute和onProgressUpdate以及onPostExecute方法访问UI。

这可以帮助您准确理解AsyncTask的工作原理: https://androidresearch.wordpress.com/2012/03/17/understanding-asynctask-once-and-forever/

并且: http://www.compiletimeerror.com/2013/01/why-and-how-to-use-asynctask.html#.Vjs3QrcrLcs

答案 1 :(得分:0)

几个月前,我曾为一个客户做过一个同样的应用程序。异步任务是一个非常糟糕的想法来获取loacation;确实是一个非常糟糕的实现。

我的使用方式如下:
-1创建我自己的LocationListener
-2创建我自己的Service,只要我将上下文注册到LocationListener并继续返回LatLng或只是将它们保存在Background中,就可以获得此LocationListener。我不得不上传到服务器 -3在服务中删除LocationListener中的更新并在完成后终止服务 -4需要时重复。

如果您仍需要详细的代码,请告诉我。

PS Read this about Async Task,如果您仍在继续实施。