跳帧,不显示进度对话框
Skipping frames, not showing progressdialog
我在 AsyncTask 中使用了一个 progressDialog,但它没有显示 progressDialog,而且还在跳帧。这是日志:
05-09 00:09:41.958: E/pass 1(16031): Connection success
05-09 00:09:41.968: E/pass 2(16031): Result: Success!
05-09 00:09:41.978: I/System.out(16031): Out background...
05-09 00:09:41.978: I/Choreographer(16031): Skipped 56 frames! The application may be doing too much work on its main thread.
05-09 00:09:42.008: I/System.out(16031): In onPostExecute...
05-09 00:09:42.018: I/System.out(16031): Committed.
05-09 00:09:42.018: I/System.out(16031): Out onPostExecute...
这是代码:
protected void onPreExecute() {
progressDialog = ProgressDialog.show(NewNote.this, "", "");
progressDialog.setCancelable(false);
progressDialog.setContentView(R.layout.progressdialog);
progressDialog.show();
}
protected Void doInBackground(Void... params) {
System.out.println("In background...");
//connecting to the internet and saving the shared preference
System.out.println("Out background...");
return null;
}
protected void onPostExecute(Void result) {
System.out.println("In onPostExecute...");
progressDialog.dismiss();
System.out.println("Committed.");
setResult(RESULT_OK, data);
finish();
System.out.println("Out onPostExecute...");
}
为什么 progressDialog 没有显示?
谢谢。
当使用 AsyncTask
时,您不应调用 get()
,因为 get()
在当前线程(很可能是您的主线程)上运行 doInBackground()
,导致您的UI 冻结。
我在 AsyncTask 中使用了一个 progressDialog,但它没有显示 progressDialog,而且还在跳帧。这是日志:
05-09 00:09:41.958: E/pass 1(16031): Connection success
05-09 00:09:41.968: E/pass 2(16031): Result: Success!
05-09 00:09:41.978: I/System.out(16031): Out background...
05-09 00:09:41.978: I/Choreographer(16031): Skipped 56 frames! The application may be doing too much work on its main thread.
05-09 00:09:42.008: I/System.out(16031): In onPostExecute...
05-09 00:09:42.018: I/System.out(16031): Committed.
05-09 00:09:42.018: I/System.out(16031): Out onPostExecute...
这是代码:
protected void onPreExecute() {
progressDialog = ProgressDialog.show(NewNote.this, "", "");
progressDialog.setCancelable(false);
progressDialog.setContentView(R.layout.progressdialog);
progressDialog.show();
}
protected Void doInBackground(Void... params) {
System.out.println("In background...");
//connecting to the internet and saving the shared preference
System.out.println("Out background...");
return null;
}
protected void onPostExecute(Void result) {
System.out.println("In onPostExecute...");
progressDialog.dismiss();
System.out.println("Committed.");
setResult(RESULT_OK, data);
finish();
System.out.println("Out onPostExecute...");
}
为什么 progressDialog 没有显示?
谢谢。
当使用 AsyncTask
时,您不应调用 get()
,因为 get()
在当前线程(很可能是您的主线程)上运行 doInBackground()
,导致您的UI 冻结。