我有两个类:Main - Activity
和 Second - 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/