0

私は AsyncTask を持っており、バックグラウンドで、URL からテキストを取得するために配偶されたサービスを開始したいと考えています。

サービスがいつ機能したかを知り、そこからテキストを取得して、AsyncTask を続行する必要があります。しかし、サービスから 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コードがメソッドServiceに簡単に記述できる場合に、なぜ開始したいのですか。非 UI スレッドで実行され、そのような種類のネットワーク アクティビティを実行するためのものです。したがって、ネットワークからデータを取得するすべてのアクティビティを、を開始するのではなく、.doInBackground()doInBackground()doInBackground()Service

于 2012-06-22T13:12:27.577 に答える