java - 从asynctask调用activity的方法

标签 java android

我有两个类:Main - ActivitySecond - AsyncTask。我想在单击按钮时触发 mymethod

我已经尝试过。

public class Second extends AsyncTask<Void, Void, Void> {

    Main main;

    @Override
    protected void onProgressUpdate(Void... values) {
    // TODO Auto-generated method stub
    super.onProgressUpdate(values);

    main = new Main(); //Wrong because is an Activity

    Button con = (Button)activity.findViewById(R.id.con);

    con.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
             // TODO Auto-generated method stub
            main.mymethod(v);
        }
     });
   }
}

但它抛出java.lang.IllegalStateException:系统服务在onCreate()之前不可用于 Activity

最佳答案

看起来您从未将 main 设置为实例,因此它是 null

你需要做类似的事情

Main main = new Main();

事实上,由于您是从内部类引用 main ,因此您还需要将 main 设置为 Final,以便内部类可以引用它:

final Main main = new Main();

关于java - 从asynctask调用activity的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19340367/

相关文章:

java - 从 html 页面获取价格

java - 如何在未经身份验证的情况下使用 Google Spreadsheet API Java 库获取公共(public) Google Spreadsheet 数据

java - 如何使用可扩展的解决方案从 java 中非常大的文件中查找唯一记录?

java - ArrayList 丢失项目

android - 使用 dip 单位而不是 px 单位的 setPadding 提供填充

java - 连接 "computer-database-jpa"Play 2.1 示例应用程序与 MySQL

java - Android FirebaseRecyclerAdapter 未填充 RecyclerView

android - 如何使用 Android 数据绑定(bind)库制作粗体文本

android - 使用带有 ActionBarSherlock 和 Roboguice 的 maven android 构建失败

android - 无法从 jitpack.io 存储库中找到依赖项