首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Activity、AppCompatActivity、FragmentActivity和ActionBarActivity:何时使用哪一个?

Activity、AppCompatActivity、FragmentActivity和ActionBarActivity:何时使用哪一个?
EN

Stack Overflow用户
提问于 2015-07-08 23:32:33
回答 3查看 213.3K关注 0票数 305

我来自iOS,它很简单,您只需使用UIViewController即可。然而,在Android中,事情似乎要复杂得多,有特定的UIComponents用于特定的API级别。我正在阅读用于安卓系统的BigNerdRanch (这本书大约有2年历史了),他们建议我使用Activity来托管我的FragmentActivities。然而,我认为Activity已经被弃用了。

因此,对于API级别22 (至少支持API级别15或16),我到底应该使用什么来托管组件以及组件本身?所有这些都有用途吗,或者我应该只使用其中的一种或两种?

EN

回答 3

Stack Overflow用户

发布于 2015-07-08 23:38:58

对于最低API级别为15的应用程序接口,您应该使用AppCompatActivity。例如,您的MainActivity将如下所示:

代码语言:javascript
复制
public class MainActivity extends AppCompatActivity {
    ....
    ....
}

要使用AppCompatActivity,请确保你已经下载了谷歌支持库(你可以在你的Tools -> Android -> AppCompatActivity管理器中查看)。然后只需在应用程序的gradle.build文件中包含gradle依赖项:

代码语言:javascript
复制
compile 'com.android.support:appcompat-v7:22:2.0'

您可以将此AppCompat用作您的主Activity,然后可以使用它来启动片段或其他活动(这取决于您正在构建的应用程序类型)。

BigNerdRanch这本书是一个很好的资源,但是它已经过时了。阅读它可以获得有关Android工作原理的一般信息,但不要期望它们使用的特定类是最新的。

票数 50
EN

Stack Overflow用户

发布于 2015-07-08 23:38:47

这里有很多混淆,特别是当你阅读过时的资料时。

最基本的是Activity,它可以显示片段。如果您使用的是Android版本4以上的版本,则可以使用此组合。

但是,还有一个支持库,它包含了您提到的其他类:FragmentActivityActionBarActivityAppCompat。最初它们被用来支持Android版本4以下的片段,但实际上它们也被用来向后移植较新版本的Android的功能(例如材料设计)。

最新的一个是AppCompat,另外两个是旧的。我使用的策略是始终使用AppCompat,这样应用程序就可以在将来的安卓版本出现后端口的情况下准备就绪。

票数 12
EN

Stack Overflow用户

发布于 2016-01-05 21:23:25

由于名称可能会在未来的安卓版本中更改(目前最新的版本是AppCompatActivity,但它可能会在某个时候更改),我认为拥有一个扩展AppCompatActivity的类Activity是一件好事,然后您的所有活动都将从该类扩展。如果明天,他们将名称更改为AppCompatActivity2,例如,您将不得不在一个地方更改它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31297246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档