我来自iOS,它很简单,你只需使用UIViewController.然而,在安卓系统中,事情似乎要复杂得多,有特定API级别的特定组件.我正在读Android版的BigNerdRanch(这本书大约有2年历史),他们建议我用Activity
来托管我的FragmentActivities
.然而,我认为Activity
是不赞成的.
那么对于API级别22(至少支持API级别15或16),我应该使用什么来承载组件,以及组件本身呢?所有这些都有用途吗?或者我应该只使用一两个吗?
我来自iOS,它很简单,你只需使用UIViewController.然而,在安卓系统中,事情似乎要复杂得多,有特定API级别的特定组件.我正在读Android版的BigNerdRanch(这本书大约有2年历史),他们建议我用Activity
来托管我的FragmentActivities
.然而,我认为Activity
是不赞成的.
那么对于API级别22(至少支持API级别15或16),我应该使用什么来承载组件,以及组件本身呢?所有这些都有用途吗?或者我应该只使用一两个吗?
我以为活动不受欢迎
不
那么对于API级别22(至少支持API级别15或16),我应该使用什么来承载组件,以及组件本身呢?所有这些都有用途吗?或者我应该只使用一两个吗?
Activity
是基线.每个活动都直接或间接地从Activity
继承.
FragmentActivity
用于support-v4
和support-v13
库中片段的后端口.片段的本机实现是在API级别11中添加的,这低于您建议的minSdkVersion
值.你需要特别考虑FragmentActivity
的唯一原因是,如果你想使用嵌套的片段(保存另一个片段的片段),因为在API级别17之前在原生片段中不支持.
AppCompatActivity
来自appcompat-v7
图书馆.基本上,这提供了操作栏的一个后端口.由于本机操作栏是在API级别11中添加的,因此不需要AppCompatActivity
.然而,appcompat-v7
的当前版本在动作栏和各种小部件方面也添加了有限的material 设计美学背景.使用appcompat-v7
有优点和缺点,远远超出了这个特定堆栈溢出答案的范围.
ActionBarActivity
是appcompat-v7
中基本活动的旧名称.出于各种原因,他们想改名.除非你正在使用的第三方库坚持使用ActionBarActivity
,否则你应该 Select AppCompatActivity
而不是ActionBarActivity
.
所以,假设你的minSdkVersion
分在15-16之间:
如果你想要后端口material 设计的外观,使用AppCompatActivity
如果不是,但您想要嵌套片段,请使用FragmentActivity
如果没有,请使用Activity
只需从 comments 中添加注释:AppCompatActivity
扩展了FragmentActivity
,所以任何需要使用FragmentActivity
功能的人都可以使用AppCompatActivity
.