我正在使用 AsyncTask 在后台加载位图。我创建了一个继承自 AsyncTask 的类 Mybackground。 如果我执行以下操作,
new MyBackground().execute();
但是当我这样调用它时,
MyBackground mBackground=new MyBackground();
mBackground.p1=1;
mBackground.p2="tets";
MyBackground.execute();
我收到错误无法对非静态进行静态引用。 为什么我会收到此错误。有没有办法做到这一点?如果不是,那么传递 2 个不同参数的好方法是什么,因为执行只接受 1 个参数?
最佳答案
您将调用 mBackground.execute()
,它会调用 MyBackground
类的特定实例的 execute
方法。
调用 new MyBackground().execute()
会创建一个新的 MyBackground
实例,然后对其调用 execute,这就是您没有收到错误的原因。
看看Java: static and instance methods如果您不确定静态方法和实例方法之间的区别是什么。
静态方法不需要该类型的实例存在,静态属性在类的所有实例之间共享。
关于android - 当我调用 AsyncTask<Void.execute 时,无法对非静态方法进行静态引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5565850/