Java 在异步类中重写和重写
我有一个用于各种异步任务的类。有时,我需要隐藏某些按钮、视图或任何基于活动或动作的内容。需要设置可见性的对象可能会有所不同 MyAsyncTaskJava 在异步类中重写和重写,java,android,android-asynctask,overriding,Java,Android,Android Asynctask,Overriding,我有一个用于各种异步任务的类。有时,我需要隐藏某些按钮、视图或任何基于活动或动作的内容。需要设置可见性的对象可能会有所不同 MyAsyncTask public class MyAsyncTask extends AsyncTask<String, Void, JSONObject> { private ProgressBar mProgressBar; public ASynceResponse delegate = null; publ
public class MyAsyncTask extends AsyncTask<String, Void, JSONObject> {
private ProgressBar mProgressBar;
public ASynceResponse delegate = null;
public MyAsyncTask() {
this.delegate = delegate;
this.mProgressBar = progressBar;
}
@Override
protected void onPreExecute() {
mProgressBar.setVisibility(View.VISIBLE);
}
@Override
protected JSONObject doInBackground(String... params) {
return;
}
@Override
protected void onPostExecute(JSONObject data) {
mProgressBar.setVisibility(View.GONE);
delegate.processResults(data);
}
public interface ASyncResponse {
void processResults(JSONObject data);
}
}
我在活动中传入一个进度条,显示正在发生的后台操作
但我想要更多。我想Overide
我的类onPreExecute
和onPostExecute
隐藏/显示其他项目
可能吗
但我正试图找到一种方法来覆盖onPreExecute
以隐藏任何类型(或多种类型)视图
这样的事情可能吗
MyAsyncTask myAsyncTask = new MyAsyncTask(new onPreExecute(
// hide a view
));
您可以使用界面执行此操作。
public class MyAsyncTask extends AsyncTask<String, Void, JSONObject> {
private ProgressBar mProgressBar;
public ASynceResponse delegate = null;
public MyAsyncTask() {
this.delegate = delegate;
this.mProgressBar = progressBar;
}
@Override
protected void onPreExecute() {
delegate.myOnPreExecute();
mProgressBar.setVisibility(View.VISIBLE);
}
@Override
protected JSONObject doInBackground(String... params) {
return;
}
@Override
protected void onPostExecute(JSONObject data) {
mProgressBar.setVisibility(View.GONE);
delegate.processResults(data);
}
public interface ASyncResponse {
void processResults(JSONObject data);
void myOnPreExecute();
}
}
您可以从
onPreExecute
和onPostExecute
回调活动,并相应地更新活动中的视图<代码>新建onPreExecute(错误。您还可以在活动本身中更新进度条(隐藏或显示)但是我如何告诉onPreExecute@Raghunandan?ackoverflow.com/questions/9963691/android-asynctask-sending-callbacks-to-ui我想做什么呢?你知道在onPreExecute
中应该做什么,只要在Activity中的callback方法中实现同样的功能,你需要在ASyncResponse
界面中使用另一个方法nswer i postedOh ok!我没有想到仅仅创建另一个委托方法调用。
public class MyAsyncTask extends AsyncTask<String, Void, JSONObject> {
private ProgressBar mProgressBar;
public ASynceResponse delegate = null;
public MyAsyncTask() {
this.delegate = delegate;
this.mProgressBar = progressBar;
}
@Override
protected void onPreExecute() {
delegate.myOnPreExecute();
mProgressBar.setVisibility(View.VISIBLE);
}
@Override
protected JSONObject doInBackground(String... params) {
return;
}
@Override
protected void onPostExecute(JSONObject data) {
mProgressBar.setVisibility(View.GONE);
delegate.processResults(data);
}
public interface ASyncResponse {
void processResults(JSONObject data);
void myOnPreExecute();
}
}
class Demo implements ASyncResponse{
.....
void processResults(JSONObject data){
....
}
void myOnPreExecute(){
// do your stuff for pre execute
}
}