Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 公共onPostExecute方法_Java_Android_Multithreading_Android Asynctask - Fatal编程技术网

Java 公共onPostExecute方法

Java 公共onPostExecute方法,java,android,multithreading,android-asynctask,Java,Android,Multithreading,Android Asynctask,我使用的是AsyncTask类,但我将其用作公共类。我想在它完成执行后运行一些代码,但我不知道如何在类之外执行它。例如: exampleAsyncTaskClass.execute(params); //What can I write here to execute code after the AsyncTask is completed 任务完成后,我是否可以在不使用受保护的onPostExecute方法的情况下执行代码。或者有没有一种方法可以使该方法不受保护?您可以将处理程序传递到任

我使用的是AsyncTask类,但我将其用作公共类。我想在它完成执行后运行一些代码,但我不知道如何在类之外执行它。例如:

exampleAsyncTaskClass.execute(params); 
//What can I write here to execute code after the AsyncTask is completed

任务完成后,我是否可以在不使用受保护的onPostExecute方法的情况下执行代码。或者有没有一种方法可以使该方法不受保护?

您可以将处理程序传递到任务的构造函数中,并在任务完成时调用它

可能是这样的:

public class SomeTask extends AsyncTask<Object, Object, Object>{

    private OnPostExecuteHandler handler;

    public SomeTask(OnPostExecuteHandler handler) {
        this.handler = handler;
    }

    @Override protected Object doInBackground(Object... params) {
        return null;
    }

    @Override protected void onPostExecute(Object o) {
        handler.runOnFinish();
    }

    public interface OnPostExecuteHandler{
        void runOnFinish();
    }
}

您可以将处理程序传递到任务的构造函数中,并在任务完成时调用它

可能是这样的:

public class SomeTask extends AsyncTask<Object, Object, Object>{

    private OnPostExecuteHandler handler;

    public SomeTask(OnPostExecuteHandler handler) {
        this.handler = handler;
    }

    @Override protected Object doInBackground(Object... params) {
        return null;
    }

    @Override protected void onPostExecute(Object o) {
        handler.runOnFinish();
    }

    public interface OnPostExecuteHandler{
        void runOnFinish();
    }
}

你可以这样做

public class Myclass{
boolean isTaskFinished;
if(isfinsihed){
//execute some code
}

ExampleTask exampe=new ExampleTask();
example.execute;



class ExampleTask extends AsyncTask<Object, Object, Object>{
private OnPostExecuteHandler handler;

public ExampleTask (OnPostExecuteHandler handler) {
    this.handler = handler;
}

@Override protected Object doInBackground(Object... params) {
    return null;
}

@Override protected void onPostExecute(Object o) {
    handler.runOnFinish();
}

public interface OnPostExecuteHandler{
    void runOnFinish();
isFinished=true:
    }
}



}
公共类Myclass{
布尔运算完成;
如果(已找到){
//执行一些代码
}
ExampleTask Example=新建ExampleTask();
例如:执行;
类ExampleTask扩展了AsyncTask{
私有OnPostExecuteHandler处理程序;
公共示例任务(OnPostExecuteHandler处理程序){
this.handler=handler;
}
@覆盖受保护对象doInBackground(对象…参数){
返回null;
}
@重写受保护的void onPostExecute(对象o){
handler.runOnFinish();
}
PostExecuteHandler上的公共接口{
void runOnFinish();
isFinished=true:
}
}
}

您可以这样做

public class Myclass{
boolean isTaskFinished;
if(isfinsihed){
//execute some code
}

ExampleTask exampe=new ExampleTask();
example.execute;



class ExampleTask extends AsyncTask<Object, Object, Object>{
private OnPostExecuteHandler handler;

public ExampleTask (OnPostExecuteHandler handler) {
    this.handler = handler;
}

@Override protected Object doInBackground(Object... params) {
    return null;
}

@Override protected void onPostExecute(Object o) {
    handler.runOnFinish();
}

public interface OnPostExecuteHandler{
    void runOnFinish();
isFinished=true:
    }
}



}
公共类Myclass{
布尔运算完成;
如果(已找到){
//执行一些代码
}
ExampleTask Example=新建ExampleTask();
例如:执行;
类ExampleTask扩展了AsyncTask{
私有OnPostExecuteHandler处理程序;
公共示例任务(OnPostExecuteHandler处理程序){
this.handler=handler;
}
@覆盖受保护对象doInBackground(对象…参数){
返回null;
}
@重写受保护的void onPostExecute(对象o){
handler.runOnFinish();
}
PostExecuteHandler上的公共接口{
void runOnFinish();
isFinished=true:
}
}
}

受保护
更改为
公共
?我不确定这将完成什么。您可以引入一些变量来检查任务是否已完成。。。。。对于ex if(isfinished){//execute som ecode}@immibis:AsyncTask是内置的class@Horatio而您的AsyncTask子类不是。@immibis没有问题,因此我可以将该类重写为public,但如何传入代码使其在类外执行?将
protected
更改为
public
?我不确定这将完成什么。您可以引入一些变量来检查任务是否已完成。。。。。对于ex if(isfinished){//execute som ecode}@immibis:AsyncTask是内置的class@Horatio而您的AsyncTask子类不是。@immibis没问题,因此我可以将该类重写为public,但我如何传入代码使其在类外执行?您能否举例说明如何从另一个类访问该类?@Horatio补充道。我建议您阅读Java的基础知识。霍雷肖补充道:“只有这样,我才能深入到安卓系统的开发中去。你能举个例子说明我如何从另一个类访问它吗?”。我建议您阅读Java的基础知识。只有这样,我们才能深入到安卓系统的开发中去。