Java AsyncTaskLoader真的继承自AsyncTaskLoader吗?
如果突出显示Drodio(Android Studio)和mash Ctrl+N中的一个类,它将显示该类的继承层次结构,与AsyncTask类似: 这似乎表明AsyncTaskLoader继承自AsyncTaskLoader?是这样吗?如果是,那是故意的吗?或者这里发生了什么 更新 我的坏;我在提示中读到了“Ctrl+N”,它实际上是说“Ctrl+H”。以下是后者带来的好处:Java AsyncTaskLoader真的继承自AsyncTaskLoader吗?,java,inheritance,android-asynctask,android-studio,asynctaskloader,Java,Inheritance,Android Asynctask,Android Studio,Asynctaskloader,如果突出显示Drodio(Android Studio)和mash Ctrl+N中的一个类,它将显示该类的继承层次结构,与AsyncTask类似: 这似乎表明AsyncTaskLoader继承自AsyncTaskLoader?是这样吗?如果是,那是故意的吗?或者这里发生了什么 更新 我的坏;我在提示中读到了“Ctrl+N”,它实际上是说“Ctrl+H”。以下是后者带来的好处: (尽管仍然不是我所期望的)准确回答这个问题需要更多地了解您的项目(大概是hhs.app)。然而,Drodio的层次结
(尽管仍然不是我所期望的)准确回答这个问题需要更多地了解您的项目(大概是hhs.app)。然而,Drodio的层次结构确实发现了
PersistHistoryAsyncTask
,它是ActivityChooserModel
的私有内部类,由于是私有类,所以没有在Android文档中列出,因此我的观点是,在我的原始响应(如下)中,Android库中没有继承自AsyncTask
的类这是不正确的
假设RESTfulActivity
、SQLiteActivity
、MainActivity
和DeliveryItemActivity
中列出的内部类都扩展了AsyncTask
,那么第二个屏幕截图中的结果完全是可以预期的AsyncTask
不从任何对象继承(显然,除了对象
),您有9个类扩展了AsyncTask
。因此,您有一个非常简单的层次结构:
java.lang.Object
|
+-- android.os.AsyncTask
|
+-- hhs.app.RESTfulActivity.PostDeliveryItemTask
|
+-- hhs.app.SQLiteActivity.FetchAndPopTask
|
+-- hhs.app.MainActivity.GetVendorsTask
|
+-- hhs.app.DeliveryItemActivity.PostDeliveryItemTask
|
+-- etc...
原始答复: 您将看到两个不同的类:
android.content.AsyncTaskLoader
和android.support.v4.content.AsyncTaskLoader
前者是:
抽象加载器,提供一个异步任务
来完成工作
后者是:
框架的AsyncTaskLoader
的静态库支持版本。用于编写在Android 3.0之前的平台上运行的应用程序
两个AsyncTaskLoader
类都从同一个包中名为Loader
的类继承,两个Loader
类都从对象继承。这些类都没有实现任何接口
您可以在grepcode.com上看到这两个类的源代码:
在我看来,两个类都没有以任何方式相互耦合。支持版本导入了android.content.Context
,但是Context
在它自己的包中对AsyncTaskLoader
没有任何作用
尽管如此,您发布的Drodio屏幕截图中的功能似乎根本不打算成为继承树。相反,这是一个类搜索。您突出显示了AsyncTask
,搜索结果显示了另外3个以“AsyncTask”开头的类,2个以“AsyncTask”结尾的类,以及1个以“Async”开头并以“Task”结尾的类(除了实际的AsyncTask
类之外的所有内容)。考虑到AsyncTask
没有继承这些类中的任何一个(AsyncTask
没有扩展或实现任何东西),这些类也没有继承自AsyncTask
(在android.
中没有扩展AsyncTask
)的类,很明显,Drodio的这一特征与遗传无关
Driodo没有显示您自己的AsyncTask
的具体实现这一事实似乎是最后一个问题,特别是因为您的光标位于定义子类的那一行。(虽然并非所有IDE都可以将用户定义的函数合并到文档弹出窗口中,但大多数IDE至少能够处理同一个文件中的内容。)你说得对-我在提示中将“Ctrl+H”误读为“Ctrl+N”。更新了一个屏幕截图。