我正在使用服务将文件上传到服务器并且我在上传文件后得到一些结果我想要一些来自服务的回调,比如当上传完成时,得到结果,如果没有得到结果的具体时间,网络丢失等根据这些回调,我需要更改我的活动,从我的服务被调用。目前我正在使用不同的广播发送和接收。
Intent w = new Intent("<KEY>");
w.putExtra("***", ***);
sendBroadcast(w);
现在工作正常,但我想知道这是正确的方法,还是有更好的方法? 我也是红色关于从活动传递Handler并从服务传递消息队列但是我不舒服这个。
答案 0 :(得分:1)
使用BroadcastReceivers
完全没问题。
但是如果你的工作者上传线程需要一次性运行,那么AsyncTask可能更适合你的需求。您在doInBackground
中完成工作,然后使用onPostExecution()
更新您的GUI。
正如您所说,您还可以在Activity中使用Handler。但是,您的服务将需要成为绑定服务,以便您能够将处理程序传递给服务。
对于非常简单的事情,我建议你使用AsyncTask。