1

私はAndroid開発から始めています。非同期操作をしていますが、操作が完了するのを待ってから、プログラムの実行を続けます。AsyncTaskとそのすべてのメソッドを使用しましたが、onPreExecuteメソッドで別のアクティビティを表示したいので、別のアクティビティを表示できないため、エラーが発生しました。それが、非同期操作が完了するのを待ちたい理由です。

ご挨拶

最初の編集:AsyncTask(onPreExecute、doInBa ...、onPost ...)を使用しましたが、どのメソッドも機能しません。AsyncTaskクラスがどのように機能するかは理解していますが、非同期のサードパーティメソッドを1つ呼び出すときに実行を停止したいのは、必要なリスナーで文字列変数Xの値を変更し、メソッドを呼び出した後、サードパーティを使用するためです。メソッドでは、変数Xを使用します。変数が更新されていないため、例外が発生しました。

4

2 に答える 2

1

AsynTaskの例を読んで従ってください。onPostExecute をオーバーライドする必要があります

于 2012-11-06T01:46:21.887 に答える
0

質問が何であるかは完全にはわかりませんが、AsynTask には、すべてが完了した後に呼び出すことができるメソッドがあります。ダイアログまたはスピナーで作業が行われていることを示してから閉じることをお勧めします。

    class loadingTask extends AsyncTask<String, Void, String> {

        protected String doInBackground(String... urls) {
            //Do work

        }

        protected void onPostExecute(String s) {
            ShowProgress.dismiss();

            Intent myIntent = new Intent(this, PostExAct.class);
            startActivity(myIntent);

        }
    }

あなたの作成時:

ShowProgress = ProgressDialog.show(MainActivity.this, "",
            "Loading. Please wait...", true);
    new loadingTask().execute("params here");

これにより読み込みダイアログが表示され、作業が完了すると閉じられます。

于 2012-11-06T01:59:22.767 に答える