我在一个名为
的类中有一个方法ChopraWisdom.GetQuote()
从互联网中提取一些数据。要使用它,我必须在我的活动中使用AsyncTask。这很好,但我的活动代码现在变得混乱了AsyncTask代码。
我希望我可以在我的类中隐藏AsyncTask,然后创建另一个名为
的方法ChopraWisdom.GetQuoteAsync()
但我不确定如何传递"行动" (我来自.Net背景)以处理需要进行的各种UI更新。
在C#中,我将方法签名定义为:
ChopraWisdom.GetQuoteAsync(Action preExecute, Action postExecute, Action updateProgress)
问题:
请提供示例。
编辑 - 添加了示例类
public class ChopraWisdom
{
public string GetQuote()
{
//...do stuff and return a string
}
}
答案 0 :(得分:1)
答案 1 :(得分:1)
Java确实具有与Action相当的东西。它被称为Function,仅在Java 8中可用。将函数作为参数传递的标准方法是创建接口并将其作为参数提供。这样,您可以传入实现该接口的类的实例,也可以创建内联的匿名类。您在Android(OnClickListener等)
我强烈建议您查看Android Annotations。它提供了有用的功能,如:
最好的事情:一切都是在编译时通过子类化完成的,因此没有性能影响,你可以检查框架在任何给定点上做了什么。