当我正在执行压缩,解压缩,下载文件和将数据从XML存储到数据库中时,AsyncTask正常工作
但是现在我正在尝试在布局中实现https://github.com/fry15/uk.co.jasonfry.android.tools滑动(从数据库中选择数据并在webview中显示),这会在运行时添加布局,因此需要很长时间才能将其放入AsyncTask但现在AsyncTask进度轮不旋转?
我的代码工作正常,但问题不在AsyncTask上。
public class LoadSlideAndQuestion extends AsyncTask<Void, Void, Void> {
ProgressDialog pDialog;
protected void onPreExecute() {
pDialog = new ProgressDialog(DialogBoxOnClick.this);
pDialog.setMessage("Loading Slide and Questions...");
pDialog.setCancelable(false);
pDialog.show();
}
protected Void doInBackground(Void... unused) {
Intent i = new Intent(DialogBoxOnClick.this, SlideScreen.class);
startActivity(i);
finish();
return (null);
}
@Override
protected void onProgressUpdate(Void... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
}
protected void onPostExecute(Void unused) {
pDialog.dismiss();
}
}
SlideActivity
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.temp);
Display display = getWindowManager().getDefaultDisplay();
width = display.getWidth();
topic = getIntent().getSerializableExtra("name").toString();
fetchdata();
PageControl mPageControl = (PageControl) findViewById(R.id.page_control);
mSwipeView = (SwipeView) findViewById(R.id.swipe_view);
mSwipeView.setPageControl(mPageControl);
for (int i = 0; i < max; i++) {
mSwipeView.addView(new FrameLayout(this));
}
for (int i = 0; i < max; i++) {
((FrameLayout) mSwipeView.getChildContainer().getChildAt(i))
.addView(setupView());
count++;
}
}
setupView()函数返回视图
public View setupView() {
LayoutInflater layoutInflator = getLayoutInflater();
LinearLayout childlayout = (LinearLayout) layoutInflator.inflate(
R.layout.webview, Switcher, false);
question_number = (TextView) childlayout
.findViewById(R.id.question_number);
question_type = (TextView) childlayout.findViewById(R.id.question_type);
question_parameters = (TextView) childlayout
.findViewById(R.id.question_parameter);
question_correct_answer = (TextView) childlayout
.findViewById(R.id.question_correct_answer);
question_difficulty = (TextView) childlayout
.findViewById(R.id.question_difficulty);
newObject = new Questionclass();
newObject = XmlHandler.questionlist.get(count);
System.out.println(newObject.QUESTION_NUMBER + " NEW OBJECT");
questionView = (WebView) childlayout.findViewById(R.id.Que_View);
WebSettings webSettings = questionView.getSettings();
// webSettings.setTextSize(WebSettings.TextSize.NORMAL);
webSettings.setDefaultFontSize(23);
question_number.setText(newObject.QUESTION_NUMBER);
question_type.setText(newObject.QUESTION_TYPE);
question_correct_answer.setText(newObject.QUESTION_CORRECT_ANSWER);
question_parameters.setText(newObject.QUESTION_PARAMETERS);
question_difficulty.setText(newObject.QUESTION_DIFFICULTY);
questionView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
questionView.getSettings().setRenderPriority(RenderPriority.HIGH);
questionView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
questionView.clearView();
questionView.loadDataWithBaseURL(
"",
IntegralParse.htmlParse(newObject.QUESTION_CODE,
"/mnt/sdcard/CHECK_LESSON_QUESTIONS/" + topic + "/" + topic
+ "/" + newObject.QUESTION_NUMBER,
getApplicationContext(), width)
+ "<hr/>"
+ IntegralParse.htmlParse(newObject.QUESTION_SOL_CODE,
"/mnt/sdcard/CHECK_LESSON_QUESTIONS/" + topic + "/"
+ topic + "/"
+ newObject.QUESTION_NUMBER,
getApplicationContext(), width), "text/html",
"utf-8", "");
questionView.requestLayout();
return childlayout;
}
答案 0 :(得分:0)
您是否尝试在UI线程之外操纵UI?
您需要使用Handler
对从后台线程在UI线程上执行的任务进行排队。
有关Communicating with the UI thread的更多信息。