Android 在AsyncTask上使用GifTextView时挂起所有线程?
我正在尝试使用Android 在AsyncTask上使用GifTextView时挂起所有线程?,android,multithreading,performance,android-asynctask,Android,Multithreading,Performance,Android Asynctask,我正在尝试使用GifTextView制作动画。这个AsyncTask实际上是有效的,但当我使用GifTextView时,它需要很长时间。如果从该代码中删除了GifTextView,AsyncTask工作速度很快 public class PDFCreate extends AsyncTask<String,String,String> { @Override protected String doInBackground(String... strings) {
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);
}
}
public类PDFCreate扩展异步任务{
@凌驾
受保护的字符串背景(字符串…字符串){
String FILE=Environment.getExternalStorageDirectory().toString()
+“/TEST/PDF/”+Ex_date+“.PDF”;
试一试{
文件=新文件(页面大小为A4);
String root=Environment.getExternalStorageDirectory().toString();
File myDir=新文件(root+“/TEST/PDF”);
myDir.mkdirs();
getInstance(文档,新文件输出流(文件));
document.open();
添加元数据(文件“泄漏”);
添加标题页(文件,Ex_标题);
document.close();
}捕获(文档异常){
FILE=“创建文档时出错”;
}catch(filenotfounde异常){
FILE=“无法创建文档路径”;
}
返回文件;
}
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
GifTextView git=(GifTextView)findviewbyd(R.id.loading_gift);
git.setVisibility(View.VISIBLE);
}
@凌驾
受保护的void onPostExecute(字符串st){
super.onPostExecute(st);
git.setVisibility(View.GONE);
ViewDialog alert=新建ViewDialog();
alert.showDialog(detail.this,“文件已保存在:\n”+st);
}
}
我的问题是,如何使用
GifTextView
而不减慢我的程序?EthicsDev好的,谢谢兄弟。最后,我使用Glide来加快我的任务。删除GifTextView
与
尝试将constructor用于AsyncTask类,将某些对象的代码初始化并从preexecute和doinbackground方法中删除,然后再试一次,让我知道更多关于constructor的信息。@EthicsDev您能给我一个关于构造函数的示例吗?实际上我搞糊涂了。关于你所说的。因为gifstextView只是显示。没有任何工作。点击这个链接:并检查我是否在constructor中放置了一些代码以进行初始化。让我知道这对你有帮助吗@AKCode@EthicsDev还是一样。在日志上,cat仍然显示“挂起所有线程所花费的时间”,并得到如此长的结果。如果我使用Textview进行更改。得到结果的时间不长。这让我感到困惑。实际上,文本视图只是用于加载的动画。
ImageView imageView = (ImageView) findViewById(R.id.loading_gift);
GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(imageView);
Glide.with(leaks_detail.this).load(R.drawable.loading).override(200,200)
.into(imageViewTarget);