当前位置: 首页 > 知识库问答 >
问题:

从AsyncTask类调用主类的非静态方法

微生新翰
2023-03-14

我需要从AsyncTask调用一个非静态方法

必须在onPostExecute中调用此方法

我用过:

Main.mymethod();
Cannot make a static reference to the non-static method mymethod() from the type Main

编辑:我尝试过:

    protected void onPostExecute(String result) {
         new Main().mymethod();
    }

投掷:

07-09 01:43:15.248: E/AndroidRuntime(29945): FATAL EXCEPTION: main
07-09 01:43:15.248: E/AndroidRuntime(29945): java.lang.NullPointerException
07-09 01:43:15.248: E/AndroidRuntime(29945):    at android.app.Activity.findViewById(Activity.java:1794)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at android.os.AsyncTask.finish(AsyncTask.java:602)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at android.os.AsyncTask.access$600(AsyncTask.java:156)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at android.os.Looper.loop(Looper.java:137)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at android.app.ActivityThread.main(ActivityThread.java:4575)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at java.lang.reflect.Method.invokeNative(Native Method)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at java.lang.reflect.Method.invoke(Method.java:511)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
07-09 01:43:15.248: E/AndroidRuntime(29945):    at dalvik.system.NativeStart.main(Native Method)

共有1个答案

孟俊晖
2023-03-14
mymethod(); call this method simply
mymethod(); you can also pass parameters to it if you have defined parameterized method like mymethod(someObj, someVariable);
 类似资料:
  • 问题内容: 我正在做作业,遇到了一些错误。在一个类中,我有此方法: 现在,我收到错误消息“无法从静态上下文中引用非静态方法…”,因此我将getPoints()设置为静态方法,并将变量也设置为静态,并且它可以正常工作。但是在另一种打印对象的方法中,它不起作用(我相信是由于static关键字)。 所以我的问题是,有没有一种方法可以在不创建第二个Class实例的情况下调用方法?这是我所拥有的一般构想代码

  • 我有一个片段类,我想在我的活动的“main”类中调用一个方法。fragment类是静态的,所以这可能是导致问题的原因,尽管我必须使它保持静态。我希望能够在静态类中执行类似的操作:

  • 现在我得到错误“non-static method conly be referenced from a static context...”,所以我将getPoints()设置为静态方法,同时将变量设置为静态,这样就可以工作了。但是在另一个打印对象的方法中,它就不起作用了(我相信这是因为static关键字的缘故)。 那么我的问题是,在所有这些之后,有没有一种方法可以调用一个方法,而不创建第二个类

  • 我有一个类,其中有一些静态方法和一些非静态方法,所以当我试图从静态方法访问非静态方法时,我会遇到一个著名的错误。每当我搜索这个论坛,我得到的解决方案,当有两个类,从一个你试图达到另一个。我的问题是,如果它们在同一个类中,如何从静态方法调用非静态方法? 我试着用 但是我的方法包含发送Intent和finish(),所以如果我创建的对象不是finish,就不起作用。

  • 问题内容: 例如,我正在尝试做这样的事情 我收到一条错误消息,告诉我无法从静态环境中引用非静态变量。因此,如果这是真的,我将如何在main内部使用非静态方法? 问题答案: 你不能 非静态方法是必须在Test类的实例上调用的方法。创建Test的实例以在您的main方法中使用:

  • 如何验证是否调用了私有嵌套类的非静态方法?这就是我目前的情况: 我明白了: 更新1: @丹尼斯,我试过以下方法,不过我得到了一个。我想根据JVM中已经存在的单例验证方法的运行,而不是创建它的新实例(正如我在下面的代码中所做的那样),以便调用方法。我尝试调用,但没有成功。有没有一种方法可以使用外部类的运行实例上的反射来验证jmockit中对私有嵌套类中非静态方法的调用(通过调用)? 更新2: 尝试获