gpt4 book ai didi

android - 为 AsyncTask 使用委托(delegate)

转载 作者:搜寻专家 更新时间:2023-11-01 08:49:10 25 4
gpt4 key购买 nike

我在我的 Android 应用程序中实现委托(delegate)时遇到问题。

在我的 GetData 类中,我嵌套了异步任务,我需要在所有工作实际完成时通知我的主要 Activity 。

我从 Mohd Mufiz 那里得到了这个答案 What is the best way for AsyncTask to notify parent Activity about completion?

但我总是卡在同一个点上:在我的 GetData 类中,我使用委托(delegate)作为唯一参数调用构造函数:

public class GetData {

private TaskDelegate delegate;

public GetData(TaskDelegate delegate) {
this.delegate = delegate;
}
...
}

在我的主要 Activity 中,我不知道我必须传递什么才能让它工作:

 GetData getData = new GetData(**???**);

最佳答案

从您链接到的问题出发,将 TaskDelegate 定义为:

public interface TaskDelegate {
public void taskCompletionResult(String result);
}

您可以将实现 TaskDelegate 的类的任何实例传递给 GetData - 但通常,那将是创建它的对象 - 即。您的主要 Activity (因此,它也会实现“void taskCompletionResult(String result);”)。这意味着您可以将“this”传递给 GetData 的构造函数,因此:

public class MyMainActivity implements TaskDelegate {

public void someMethod() {
GetData getData = new GetData(this);
}

public void taskCompletionResult(String result) {
// do stuff
}
}

关于android - 为 AsyncTask 使用委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25265120/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com