微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

像这样的“新AsyncTask <Exercise,Void,Void>”这样的匿名AsyncTask中的构造方法?

如何解决像这样的“新AsyncTask <Exercise,Void,Void>”这样的匿名AsyncTask中的构造方法?

把所有工作都放在代码中某个地方的AsyncTask类中,这确实让我很痛苦,但是代码无法执行,我希望他可以执行。

我以前使用new AsyncTask<Void,Void,Void>(){}函数代码放在我期望的位置,并且每个人都可以正常使用。

如果我想将AsyncTask与父类的变量一起使用,它会警告我可能发生内存泄漏。

在此匿名AsyncTask中是否可以使用构造函数?我认为没有,但是如果有一种方法可以将代码保留在适当的位置,但是可以将变量传递到异步任务中,那将非常好。

也许是这样的:

        AsyncTask<Exercise,Void> insert = new AsyncTask <Exercise,Void>(){
            private Exercise mExercise;
            
            public AsyncTask(Exercise exercise){
                mExercise = exercise;
            }
            
            @Override
            protected Void doInBackground(Exercise... exercises) {
                mExerciseDAO.insertExercise(exercises[0]);
                return null;
            }

        };

解决方法

以下是将您的Exercise参数传递给匿名AsyncTask的方法:

new AsyncTask<Void,Void,Void>(){

    Exercise mExercise;

    @Override
    protected Void doInBackground(Void... params) {

        // Your code ...
        mExerciseDAO.insertExercise(this.mExercise);
        return null;
    }

    public AsyncTask setExercise (Exercise exercise){
        this.mExercise = exercise;
        return this;
    }

}.setExercise(exercise).execute();

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。