0

MainActivity の関数で呼び出される AsynchTask があります。onPostExecute メソッドが実行された後、AsynchTask を呼び出した関数に制御が戻らないようです。

public class MainActivity extends FragmentActivity {

private class GetPlaces extends AsyncTask<AsynchInput,Void,AsynchOutput>{

    protected AsynchOutput doInBackground(AsynchInput... placesURL) {

        ...
    }

    protected void onPostExecute(AsynchOutput result) {
     ....
    }


}


public void showInterestingPlacesNearby(GoogleMap myMap,Location loc){

    ....
    ...

    new GetPlaces().execute(new AsynchInput(myMap,placesSearchStr));


}   

}

new new GetPlaces().execute の後に書いたコードが実行されません。AysnchTask が戻った後、どうすれば続行できますか。

編集: MainActivity の内部クラスとして AsynchTask を使用しました。

4

3 に答える 3

0

考えられる解決策は次のとおりです。.executeの後に入力したコードを取得し、それをプライベートメソッドに入れます

private void AfterTask() {
//your code written after .execute here
}

onPostExecute で、そのメソッドを呼び出すだけです

protected void onPostExecute(AsynchOutput result) {
    AfterTask();
}
于 2013-06-11T13:16:57.797 に答える