gpt4 book ai didi

java - AsyncTaskLoader真的继承自AsyncTaskLoader吗?

转载 作者:行者123 更新时间:2023-11-30 03:54:09 25 4
gpt4 key购买 nike

如果您在 Drodio (Android Studio) 中突出显示一个类并按下 Ctrl+N,它将显示该类的继承层次结构,就像 AsyncTask 一样:

enter image description here

这好像表明AsyncTaskLoader继承自AsyncTaskLoader?是这样吗?如果是这样,那是故意的吗?或者这里发生了什么?

更新

我的错;我在提示中读到“Ctrl+N”,它实际上说的是“Ctrl+H”。以下是后者的效果:

enter image description here

(尽管仍然不符合我的预期)

最佳答案

准确回答这个问题需要更多地了解您的项目(大概是 hhs.app)。然而,Drodio 的层级确实发现了 PersistHistoryAsyncTask ,这是 ActivityChooserModel 的私有(private)内部类,由于是私有(private)类而没有在 Android 文档中列出,所以我的观点是该 android 库中没有继承自 AsyncTask 的类。我原来的回复(如下)是不正确的。

假设 RESTfulActivity 中列出了内部类, SQLiteActivity , MainActivity ,和DeliveryItemActivity全部延伸AsyncTask ,第二个屏幕截图中的结果完全符合预期。 AsyncTask不继承任何东西(显然,除了 Object ),并且您有 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.AsyncTaskLoaderandroid.support.v4.content.AsyncTaskLoader .

前者是:

Abstract Loader that provides an AsyncTask to do the work.

后者是:

Static library support version of the framework's AsyncTaskLoader. Used to write apps that run on platforms prior to Android 3.0.

两者AsyncTaskLoader类继承自名为 Loader 的类在同一个包中,两个 Loader类继承自 Object 。相关类均未实现任何接口(interface)。

您可以在 grepcode.com 上查看这两个类的源代码:

据我所知,这两个类都没有以任何方式与另一个类耦合。支持版本导入android.content.Context ,但是ContextAsyncTaskLoader 没有做任何事情在它自己的包中。

综上所述,您发布的屏幕截图中的 Drodio 功能似乎根本不打算成为继承树。相反,这是一个类别搜索。您已突出显示 AsyncTask ,搜索结果显示另外 3 个以“AsyncTask”开头的类,2 个以“AsyncTask”结尾的类,以及 1 个以“Async”开头并以“Task”结尾的类(除了实际的 AsyncTask 之外的所有这些)。类(class))。考虑AsyncTask不继承这些类中的任何一个( AsyncTask 不扩展或实现任何内容),也不继承任何这些类 AsyncTask (在 android.* 中没有扩展 AsyncTask 的类),很明显 Drodio 的这个功能与继承无关。

事实上,Driodo 没有显示您自己的 AsyncTask 的具体实现似乎是棺材上的最后一颗钉子,特别是因为您的光标位于定义子类的那一行。 (虽然并非所有 IDE 都可以将用户定义的函数合并到文档弹出窗口中,但大多数至少能够处理同一文件中的内容。)

关于java - AsyncTaskLoader真的继承自AsyncTaskLoader吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23686881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com