android - 当我调用 AsyncTask<Void.execute 时,无法对非静态方法进行静态引用

标签 android android-asynctask

我正在使用 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/

相关文章:

java - 恢复 Activity 中正在运行的异步任务

java - 从 AsyncTask 类返回数据

java - 从 onpostexecute 发送值

android - 在 asynchorinos 任务中使用 .net ksoap webservice 并转到其他屏幕

使用 Executor 的 JavaFX 应用程序在退出时挂起

javascript - 横向显示键盘时 HTML Canvas 中断

java - 使用startActivity()时出现运行时错误

android - 在 FSClient 和 Android 手机之间使用我的自定义 SIP 应用程序时没有音频

android - 在 Jetpack compose 中的按钮中将文本右对齐

android - 无法从 Assets 文件夹 Android Studio 加载 HTML