我是一名长期(8 年)C# 开发人员,涉足一点 android 开发。这是我第一次使用 Java,当涉及到内部类时,我在转变我的思维方式时遇到了一些麻烦。
我正在尝试编写一个类来包装一个 RESTful API,以便从一个类型安全的地方在服务器上执行各种调用,例如
string jsonResult = APIWrapper.getItems("category 1");
我想使用 AsyncTask 在后台获取内容。
所以一种方法是 - 在 APIWrapper 中有 AsyncTask :
class ActivityA extends Activity {
myButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//get stuff and use the onPostExecute inside the APIWrapper
new APIWrapper().GetItems("Category A", MyGetItemsCallBack);
}});
function void MyGetItemsCallBack(String result)
{
//render the result in the activity context, in a listview or something
}
}
无论如何,我不确定回调/委托的想法是否适用于 Java!
另一种方法是在 Activity 中使用 AsyncTask 并创建 APIWrapper 以像工作者/助手一样获取数据:
class ActivityA extends Activity {
myButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
//get stuff and use the onProcessComplete inside the APIWrapper
new GetItems("Category A");
}});
class GetItems(String theCategory) extends AsyncTask
{
doInBackground()
{
return new APIWrapper().GetItems(theCategory);
}
onPostExecute(String result)
{
//render the result in the activity context, in a listview or something
}
}
}
谁能帮我做出正确的选择?