android asynTask到活动问题?
我开发了一个GPS应用程序。我的应用程序有一个服务,负责通过服务器向服务器发送GPSandroid asynTask到活动问题?,android,service,android-asynctask,Android,Service,Android Asynctask,我开发了一个GPS应用程序。我的应用程序有一个服务,负责通过服务器向服务器发送GPS Service -----> AysncTask(sendServer) // then in service i broadcast some variable myFilteredResponse = new Intent(GPS_FILTER); myFilteredResponse.putExtra("latitude", Double.valueOf(twoForma
Service -----> AysncTask(sendServer)
// then in service i broadcast some variable
myFilteredResponse = new Intent(GPS_FILTER);
myFilteredResponse.putExtra("latitude", Double.valueOf(twoFormat.format(location.getLatitude())));
myFilteredResponse.putExtra("longitude", Double.valueOf(twoFormat.format(location.getLongitude())));
myFilteredResponse.putExtra("network", MyGPS.cur_network_status);
然后在我的活动中,我创建了一个广播接收器来接收所有这些变量。它工作正常,当我们有了新的lat n lon时,我的UI就会改变
在我的AYSNTASK中,当发送到服务器时,我将通过服务器获得位置标识,因此我想更新我的UI界面,以便我1 2也使用广播,但它不起作用
结构
broadcast
service ( on location changed ) -------------> UI interface
broadcast??
AsyncTask -------------> UI interface
我不能在我的AsyncTask中使用sendBroadcast,因为我的AsyncTask不是活动。你知道吗?我想你的问题是从服务中获取数据 您可以将服务绑定到UI,并从活动中调用服务 这是一个开源项目 这是服务代码 这是用户界面 编辑: 如果您想使用AsyncTask进行UI更新,那么可以使用在UI线程中运行的onPostExecute 编辑:
干得好。异步任务示例 Thx,但是我使用广播,这样我的UI的静态成员就不能从服务中捕获信息广播(这很好)。问题在于asyncTask类中,在我从服务器获得响应后,我想更新我的UI,您是否在asyncTaskin my asyncTask受保护的void OnPostExecute(字符串结果){Log.d中从OnPostExecute更新UI(tag,“post executed”+result);//在这里做某事//MyGPS.location_info=“UnKnown”////要将响应广播到UI我可以吗我所做的只是使UI的成员与响应相等,所以我认为如果我可以广播,我可以在执行后更新我的UI,我可以更改从服务器获取的位置值,但问题是我必须重新启动活动,否则它将不会更改执行后在UI线程上运行,因此可以直接更新UI。无需更改铸造