bueno por lo que puedo entender lo que quieres es:
poner un boton en la activity que al presionarlo tome los datos que se han estado calculando en un AsyncTask. Posteriormente cerrar ese AsyncTask.
Supongo que el AsyncTask es un subclase dentro de la activity.
Yo lo haria:
- Declarando las variables de los resultados como globales dentro de la activity.
- En el AsyncTask publica los valores de las resultados en el onProgressUpdate, así te aseguras que se calcularon bien los datos, que no se toman datos a mitad de calculo.
- Cuando presiono el boton ese, leer los datos de las variables globales y después cerrar el AsyncTask si es necesario. (puede ser mejor al revés, así te aseguras que termina el proceso del AsyncTask, primero cierralo y despues lee las variables, depende del proceso de calculo que este dentro del AsyncTask)
- Si necesitas un aviso de que termino el AsyncTask, ponlo en el método onPostExecute(Boolean result) del AsyncTask.
Así accedes a los resultados cuando quieras. Te aseguras que no se actualizan los resultados sin haber completado una vuelta entera del proceso del AsyncTask. Si se termina el AsyncTask te avisa sin necesidad de comprobar el estado.
No se si es lo que querías hacer. Sino es eso mándame un privado y lo vemos con el código.