我来自于iOS,它很简单,您只需使用UIViewController。但是,在Android中,事情似乎要复杂得多,对于特定的API级别,使用某些UIComponent。我正在阅读适用于Android的BigNerdRanch(这本书大约有2年历史了),他们建议我使用Activity
托管我的FragmentActivities
。但是,我认为Activity
已过时。
因此,对于API级别22(对API级别15或16的最低支持),我到底应该使用什么来托管组件以及组件本身?所有这些都有用途吗,还是我应该只使用一两个?
最佳答案
不。
Activity
是基线。每个 Activity 都直接或间接地从Activity
继承。FragmentActivity
与support-v4
和support-v13
库中找到的片段的反向端口一起使用。片段的 native 实现是在API级别11中添加的,该级别低于建议的minSdkVersion
值。您需要特别考虑使用FragmentActivity
的唯一原因是,如果您要使用嵌套片段(包含另一个片段的片段),因为 native 片段直到API级别17才支持。AppCompatActivity
来自appcompat-v7
库。原则上,这提供了操作栏的反向移植。由于 native 操作栏是在API级别11中添加的,因此您不需要AppCompatActivity
。但是,就 Action 栏和各种小部件而言,当前版本的appcompat-v7
也增加了有限的Material Design美学反向移植。使用appcompat-v7
的优缺点,远远超出了此特定Stack Overflow答案的范围。ActionBarActivity
是appcompat-v7
中基础 Activity 的旧名称。由于各种原因,他们想更改名称。除非您使用的某些第三方库坚持使用ActionBarActivity
,否则您应首选AppCompatActivity
而不是ActionBarActivity
。
因此,鉴于您的minSdkVersion
在15-16范围内:
AppCompatActivity
FragmentActivity
Activity
只是在注释中添加注释:
AppCompatActivity
扩展了FragmentActivity
,因此任何需要使用FragmentActivity
功能的人都可以使用AppCompatActivity
。