Android中的Extends Application和Extends Activity有什么区别?

jcr*_*son 25 java android

我很困惑两者之间的区别.在我的应用程序中,我刚刚使用了Extends Activity,应用程序运行正常,那么Extends Application的目的是什么?

你会在Android应用程序中创建的第一个类上使用它吗?

谢谢.

Jim*_*ler 14

android.app.Application类是一个用于扩展和存储应用程序全局状态的可选工具.还有其他方法可以做到这一点,因此大多数应用程序不会自定义此类.

然而,活动是定义应用程序的每个主要阶段的活动.没有活动就无法构建应用程序.您将拥有一个主Activity类,这确实将使用'extends Activity'进行定义.


Ani*_*kur 8

看到差异的最佳方式是看它的类层次结构

活动

java.lang.Object
  ? android.content.Context
      ? android.content.ContextWrapper
          ? android.view.ContextThemeWrapper
              ? android.app.Activity
Run Code Online (Sandbox Code Playgroud)

应用

java.lang.Object
?   android.content.Context
   ?    android.content.ContextWrapper
       ?    android.app.Application
Run Code Online (Sandbox Code Playgroud)

应用程序直到你的Android应用程序进程被杀死.您可以使用它来存储可能在各种活动中使用的特定于应用程序的数据(只要您的应用程序处于活动状态).注意我并不是说你应该......根据你的用例,共享偏好可能是其他合适的方式.另外,要明确您不能使用您的应用程序启动您的应用程序,这与您在清单文件中提供的启动器活动不同.

您可以按如下方式使用自己的自定义Application类

<application
    android:name="icom.osfg.test.app.AppController"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/MyTheme" >
    <!-- all the activities goes here -->
</application>
Run Code Online (Sandbox Code Playgroud)

哪里

AppController extends Application
Run Code Online (Sandbox Code Playgroud)