【问题标题】:Can not Use Async Class inside an Activity . The Activity already Consist of a Main class extending from Activity不能在 Activity 中使用异步类。 Activity 已经包含从 Activity 扩展的 Main 类
【发布时间】:2015-07-05 14:19:55
【问题描述】:
public class Server_Activity extends AsyncTask<Void, String, Void> {


}

写这个类的时候报错:

ClassServer_Activity 必须声明为抽象或实现抽象方法 doInBackground(params)。

是什么导致了这个错误?

【问题讨论】:

    标签: android android-activity android-asynctask


    【解决方案1】:

    添加方法doInBackground()。这是因为 AsyncTask 是一个抽象类,其中还包含抽象方法doInBackground()。这意味着,任何从 AsyncTask 类继承的类也必须实现 doInBackground() 方法。

    但是您的标题似乎是另一个问题,听起来您将Server_Activity 类写在另一个活动的同一个文件中。在 Eclipse 中,这个错误听起来像:

    公共类型Testclass必须定义在自己的文件中

    如果是这种情况:创建一个新的.java 文件并在其中写入您的Server_Activity 类。 并且不要忘记在那里实现doInBackground() 方法。

    您可以在android developer api 中查看此示例。

    【讨论】:

      【解决方案2】:

      在您的代码中实现 doInBackground 方法。按ctrl+i,选择doInBackground然后回车方便

      【讨论】:

      • 是的...我试过了,它返回一个错误。 " 类服务器活动是公共的,应该在文件 server_acivity.java 中声明。我该如何解决这个错误
      【解决方案3】:

      根据您必须实现 doInBackground 的文档。因为 doInbackground 方法被声明为抽象的。 见文件 http://developer.android.com/reference/android/os/AsyncTask.html

      受保护的抽象结果doInBackground(参数...参数)

      在 API 级别 3 中添加重写此方法以执行计算 后台线程。指定的参数是参数 由该任务的调用者传递给 execute(Params...)。这种方法 可以调用 publishProgress(Progress...) 在 UI 上发布更新 线程。

      Parameters params 任务的参数。返回一个结果, 由该任务的子类定义。

      在你的情况下,参数...参数是无效的

      ↳ android.os.AsyncTask

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-09
        • 2016-01-02
        • 1970-01-01
        • 1970-01-01
        • 2014-01-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多