try async, but may need to use AsyncTask