Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对于AsyncTask,在doInBackground()方法之前调用onPostExecute()_Java_Android_Android Asynctask - Fatal编程技术网

Java 对于AsyncTask,在doInBackground()方法之前调用onPostExecute()

Java 对于AsyncTask,在doInBackground()方法之前调用onPostExecute(),java,android,android-asynctask,Java,Android,Android Asynctask,考虑以下代码: package com.reallybelievebig.asynctaskextracredit; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; impor

考虑以下代码:

package com.reallybelievebig.asynctaskextracredit;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

public class AsyncTaskTestActivity extends AppCompatActivity {

    private static final String TAG = AsyncTaskTestActivity.class.getSimpleName();

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_async_task_test);

        new TestTask().execute("Execute");

        Log.d(TAG, "In UI Thread!");
    }

    private class TestTask extends AsyncTask<String, Integer, String> {

        @Override
        protected String doInBackground(String... params) {
            for (int i = 0; i <= 100; i+=20) {
                try {
                    Thread.sleep(50);
                } catch (InterruptedException e) {
                    Log.e(TAG, "Exception Caught: ", e);
                }

                publishProgress(i);
            }

            return "Background Task Complete";
        }

        @Override
        protected void onProgressUpdate(Integer... values) {
            Toast.makeText(AsyncTaskTestActivity.this, "Progress: " + values[0], Toast.LENGTH_LONG).show();
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Log.d(TAG, "In onPostExecute: " + s);
            Toast.makeText(AsyncTaskTestActivity.this, s, Toast.LENGTH_LONG).show();
        }
    }

}
package com.reallybelievebig.asynctaskextracredit;
导入android.os.AsyncTask;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.widget.TextView;
导入android.widget.Toast;
公共类AsyncTaskTestActivity扩展了AppCompatActivity{
私有静态最终字符串标记=AsyncTaskTestActivity.class.getSimpleName();
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u async\u task\u test);
新建TestTask().execute(“execute”);
d(标记“在UI线程中!”);
}
私有类TestTask扩展了AsyncTask{
@凌驾
受保护的字符串doInBackground(字符串…参数){

对于(int i=0;i,
doInBackground()
方法只需要大约四分之一秒。您的祝酒会以3.5秒的时间异步显示,因此
onPostExecute()
在祝酒之前会运行良好。使用日志而不是祝酒。@MikeM。是的,这就是问题所在。现在我明白了!。Thanks@RahulTiwari:是的,日志将显示实际工作情况。谢谢