【发布时间】:2014-11-15 12:16:50
【问题描述】:
我正在编写一个用于使用基于 SOAP 的 Web 服务的 Android 客户端。我正在使用AsyncTask 来执行网络(即调用网络服务)操作。我正在编写客户端。
-
现在,当我尝试实现
AsyncTask的doInBackground方法时, 我在protected String doInBackground(String[] params)...收到以下两个错误如果我写@Override注释:MainActivity.MyTask 类型的方法 doInBackground(String[]) 必须覆盖或实现超类型方法。 1 快速修复:删除 '@Override' 注释
在
private class MyTask extends AsyncTask...出现以下错误:MainActivity.MyTask 类型必须实现继承的抽象方法 AsyncTask.doInBackground(String[]...)。 2 快速修复:添加未实现的方法(这会自动生成
doInBackground再次使用@Override方法 注释)。 将类型“MyTask”抽象化。 -
如果我不写
@Override注释,我只会得到第二个错误。... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String [] params = {URL, METHOD_NAME, NAMESPACE}; } private class MyTask extends AsyncTask<String[], Void, String> { //@Override write it or not write it? :s **************** protected String doInBackground(String[] params) { // TODO Auto-generated method stub return null; } } ...
这背后的原因可能是什么?我该怎么办?
【问题讨论】:
-
将
private class MyTask extends AsyncTask<String[], Void, String>更改为private class MyTask extends AsyncTask<String, Void, String>并在doInBackground argments中写入String...而不是String[]
标签: java android android-asynctask annotations overriding