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:是的,日志将显示实际工作情况。谢谢