【发布时间】:2016-12-28 05:04:49
【问题描述】:
我正在尝试将GifTextView 用于我的动画。这个AsyncTask 确实有效,但是当我使用GifTextView 时需要很长时间。如果从该代码中删除 GifTextView,AsyncTask 工作得很快。
public class PDFCreate extends AsyncTask<String,String,String> {
@Override
protected String doInBackground(String... strings) {
String FILE = Environment.getExternalStorageDirectory().toString()
+"/TEST/PDF/"+Ex_date+".pdf";
try {
Document document = new Document(PageSize.A4);
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/TEST/PDF");
myDir.mkdirs();
PdfWriter.getInstance(document, new FileOutputStream(FILE));
document.open();
addMetaData(document,"LEAKS");
addTitlePage(document,Ex_title);
document.close();
} catch (DocumentException e) {
FILE = "Error Create Document";
} catch (FileNotFoundException e) {
FILE = "Cannot Create Document Path";
}
return FILE;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
GifTextView git = (GifTextView) findViewById(R.id.loading_gift);
git.setVisibility(View.VISIBLE);
}
@Override
protected void onPostExecute(String st) {
super.onPostExecute(st);
git.setVisibility(View.GONE);
ViewDialog alert = new ViewDialog();
alert.showDialog(detail.this,"File have been saved on : \n" + st);
}
}
我的问题是,如何使用GifTextView 而不减慢我的程序?
【问题讨论】:
-
尝试为 AsyncTask 类使用 Contructor 并将一些对象初始化的代码从 preexecute 和 doinbackground 方法中删除,然后再试一次,让我知道
-
再清楚一点。
-
@EthicsDev 你能给我举个关于构造函数的例子吗?其实我很困惑。关于你说的。因为 GifTextView 只是显示。什么都做不了。
-
转到此链接:gist.github.com/anonymous/97b8a90702c3858db203502670c9dd9e 并检查我是否在构造函数中放入了一些代码以进行初始化。让我知道它对你有帮助吗。 @AKCode
-
@EthicsDev 还是一样。在日志上 cat 仍然显示“暂停所有线程”并得到这么长时间的结果。如果我用 Textview 改变。出结果的时间不长。这让我很困惑。实际上 GifTextView 只是加载动画。
标签: android multithreading performance android-asynctask