我已经创建了一个意图下载服务,并且我想要将下载数据传递给Toast并在主要活动中传入文本。下载服务应该从报警管理器重复启动。我该怎么做呢?如何从意向下载服务访问变量?
目前,它不显示在吐司,但我有网络流量;数据已下载但未显示。
相关代码:
public class DownloadService extends IntentService {
public String response;
public DownloadService() {
super("DownloadService");
}
// Will be called asynchronously be Android
@Override
protected void onHandleIntent(Intent intent) {
//String urldown = intent.getStringExtra("url");
String urldown="http://......";
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(urldown);
try {
HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();
BufferedReader buffer = new BufferedReader(new InputStreamReader(content));
String s = "";
while ((s = buffer.readLine()) != null) {
response += s;
}
} catch (IOException e) {
e.printStackTrace();
}
Intent intentsend=new Intent("update");
intentsend.putExtra("downdata",response);
sendBroadcast(intentsend);
}
为什么使用吐司?当您需要显示服务的某种反馈时,通常会使用通知。 –
我如何做到这一点?以及如何将下载数据作为文本传递给main.xml? – user1977741
如果您需要服务和活动之间的双向沟通 - 您可以将服务绑定到活动。检查[this](http://stackoverflow.com/questions/4300291/example-communication-between-activity-and-service-using-messaging)问题。 –