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

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

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

谢谢。

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

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

但是,活动定义了应用程序的每个主要阶段。 没有活动就无法构建应用程序。 您将拥有一个主Activity类,这确实将使用’extends Activity’定义。

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

活动

java.lang.Object ↳ android.content.Context ↳ android.content.ContextWrapper ↳ android.view.ContextThemeWrapper ↳ android.app.Activity 

和应用

 java.lang.Object ↳ android.content.Context ↳ android.content.ContextWrapper ↳ android.app.Application 

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

您可以使用自己的自定义Application类,如下所示

    

哪里

 AppController extends Application 

只是添加到以前的答案。

Application类将是一个单例,只要您的应用程序处于活动状态,它就会存在。

您可以在Application扩展类中初始化全局组件,因为如果您不想处理通常的Activity 生命周期 ,它将持续到您的进程终止。

例如,初始化第三方库,如:Parse,CanaryLeak,Crashlytics。

 public class App extends Application { @Override public void onCreate() { super.onCreate(); Parse.initialize(this); LeakCanary.install(this); Fabric.with(this, new Crashlytics()); } }