嘿,我不知道这是否是正确的方法,但如果是我怎么办呢......
我有一个带有AsyncTask的抽象类
public abstract class A{
A(){
new Task().execute();
}
public abstract void postAction();
private class Task extends AsyncTask<String, String, String>{
protected String doInBackground(String... args)
{
//smth
}
protected void onPostExecute(String file_url){
postAction();
}
}
}
之后我有一个扩展A类的类并覆盖它的postAction()
方法:
public class B extends A{
B(){
//smth
}
postAction(){
//some action
}
}
在我的活动中,我有B
的实例,我想在调用postAction时执行操作...所以我想要函数监听器,如果可能的话我该怎么办
class C extends Activity{
public void onCreate(Bundle savedInstance) {
super.onCreate(savedInstance);
//somethingggg happeiningggg
}
MyListener listener = new MyListener(){
onPostActionCalled()
{
//start another activity or smt :D
}
};
}
所以我有json响应类(class A
)和class B
扩展它并覆盖它的post方法,所以我可以做我想要的特定情况(期望不同的数据或其他nvm)
在我的活动中,我希望在调用class B
的post方法时执行操作
我不知道我是否需要做听众或处理程序idk ....
答案 0 :(得分:0)
Stefan是对的,为什么会让事情复杂化?
请参阅这个真实简单的线程示例:
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new MyTask(new TaskListener() {
@Override
public void finished(boolean result) {
// back on main thread after task finishes
}
}).execute();
}
private interface TaskListener{
void finished(boolean result);
}
private class MyTask extends AsyncTask<Object, Integer, Boolean>{
private TaskListener mListener;
public MyTask(TaskListener mListener) {
super();
this.mListener = mListener;
}
@Override
protected Boolean doInBackground(Object... params) {
// long running background operation
return true;
}
@Override
protected void onPostExecute(Boolean result) {
mListener.finished(result);
super.onPostExecute(result);
}
}
}