0

我有一个 AsyncTask 并且在后台我想启动服务以从 url 获取文本。

我需要从服务中了解它何时完成工作并从中获取一些文本并继续使用 AsyncTask。但我不知道如何从 Service 获取参数到 AsyncTask 并知道它是否完成。

我在 AsyncTask 上的代码是:

    protected String doInBackground(String... params) {
    //starts service number activite
    Intent serviceIntent = new Intent();
    serviceIntent.setAction("services.conServise");
    context.startService(serviceIntent);

return null;
}

服务代码:

    public void onStart(Intent intent, int startId) {

    // Create some random data
           try{
      URL url = new URL("http://hostname:80/index.html");

        // Read all the text returned by the server
  BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
        String str;
        while ((str = in.readLine()) != null) {
     str is one line of text; readLine() strips the newline character(s)
        }
        activitNum = Integer.parseInt(str);
        in.close();

    } catch (MalformedURLException e) {
    } catch (IOException e) {
statusCon=-1;

    }finally{stopSelf();}


    super.onStart(intent, startId);
}

感谢您的帮助!

4

1 回答 1

1

为什么要在方法中轻松编写Service代码时要启动。在非 UI 线程上运行,旨在执行此类网络活动。因此,我建议您自己完成所有从网络获取数据的活动,而不是启动.ServicedoInBackground()doInBackground()doInBackground()Service

于 2012-06-22T13:12:27.577 回答