我来自iOS,它很简单,你只需要使用UIViewController。然而,在Android中,事情似乎要复杂得多,特定的API级别有特定的uiccomponent。我正在阅读BigNerdRanch for Android(这本书大约有2年的历史了),他们建议我使用Activity来托管我的FragmentActivities。然而,我认为活动是不赞成的。
那么对于API级别22(至少支持API级别15或16),我究竟应该使用什么来托管组件,以及组件本身呢?所有这些都有用处吗,还是我应该只使用其中一两个?
对于最低API级别为15的情况,您需要使用AppCompatActivity。例如,你的MainActivity看起来是这样的:
public class MainActivity extends AppCompatActivity {
....
....
}
要使用AppCompatActivity,请确保您下载了谷歌支持库(您可以在您的Tools -> Android -> SDK管理器中检查这一点)。然后在你的应用的gradle中包含gradle依赖。构建文件:
compile 'com.android.support:appcompat-v7:22:2.0'
你可以使用这个AppCompat作为你的主活动,然后它可以用来启动Fragments或其他活动(这取决于你正在构建的应用类型)。
《BigNerdRanch》这本书是一个很好的资源,但是是的,它已经过时了。阅读它可以获得关于Android如何工作的一般信息,但不要期望他们使用的特定类是最新的。
Activity是所有其他Activity的基类,我不认为它会被弃用。它们之间的关系是:
Activity <- FragmentActivity <- AppCompatActivity <- ActionBarActivity
'<-'在这里表示继承。参考说ActionBarActivity已弃用,改用AppCompatActivity。
所以基本上,使用AppCompatActivity总是正确的选择。它们之间的区别是:
活动是最基本的。
基于Activity, FragmentActivity提供了使用Fragment的能力。
基于FragmentActivity, AppCompatActivity为ActionBar提供了一些特性。