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);