返回顶部
首页 > 资讯 > 移动开发 >Android Application类的详细介绍
  • 551
分享到

Android Application类的详细介绍

Android 2022-06-06 05:06:48 551人浏览 泡泡鱼
摘要

Android Application类详解: Android中Application类的详细解释: 我们在平时的开发中,有时候可能会需要一些全局数据,来让应用中的所有Ac

Android Application类详解:

Android中Application类的详细解释:

我们在平时的开发中,有时候可能会需要一些全局数据,来让应用中的所有Activity和View都能访问到,大家在遇到这种情况时,可能首先会想到自己定义一个类,然后创建很多静态成员。
但是这种方法不符合Android的框架架构,不过andorid已经为我们提供了这种情况的解决方案:在Android中,有一个名为Application的类,我们可以在Activity中使用getApplication(),方法来获得,它是代表我们的应用程序的类,使用它可以获得当前应用的主题,资源文件中的内容等,这个类更灵活的一个特性就是可以被我们继承,来添加我们自己的全局属性。让整个App的Activity和View都能访问到。

1.概念:

android系统会为每个程序运行时创建一个Application类的对象且仅创建一个,所以Application可以说是单例 (singleton)模式的一个类.且application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以通过Application来进行一些,数据传递,数据共享,数据缓存等操作。

2.作用:

(1).Application是一个基类,这个基类的作用是获取整个App的状态,我们需要自己定义一个类来继承这个基类。
(2).定义一些全局的和一些上下文都要用到的变量和方法。

3.优点:

(1).继承的方式:
生命周期随着应用程序的销毁而销毁。
(2).静态类或静态方法:
程序退出后该类或者变量不能立刻被GC回收。
当你再次进入后会发现该静态类保存的信息状态是之前的。有可能会导致程序不是你想要的初始化状态。
(3).App的进程被创建时,这个类就会被实例化,onCreate()方法就会被执行,给所有全局变量赋初期值。这样,所有的Activity就共同拥有这个类里面的变量了。

4.getContext()、getApplication()、getApplicationContext()、getActivity()的区别:

(1).getContext():获取到当前对象的上下文。
(2).getApplication():获得Application的对象
(3).getApplicationContext():获得应用程序的上下文。有且仅有一个相同的对象。生命周期随着应用程序的摧毁而销毁。就像是社会,所有的都发生在这个社会上,仅且只有一个社会。每个Activity都有自己的上下文,而整个应用只有一个上下文
(4)getActivity():获得Fragment依附的Activity对象。Fragment里边的getActivity()不推荐使用原因如下:这个方法会返回当前Fragment所附加的Activity,当Fragment生命周期结束并销毁时,getActivity()返回的是null,所以在使用时要注意判断null或者捕获空指针异常。所以只要判断getActivity()为空,就可以不再执行下面的代码,这完全不影响业务的使用。

5.应用程序创建Context实例的情况有如下几种情况:

(1).创建Application对象时,而且整个App共一个Application对象
(2).创建Service对象时
(3).创建Activity对象时。
Activity Service Application都是Context的子类。Context是一个抽象类,具体的实现是在ContextImpl类中。因此应用程序App共有的Context数目公式为:
总Context实例个数=Service个数+Activity个数+1(Application对应的Context实例)

6.Android应用中内存泄漏问题:

(1).对Context持有一个过长的引用。对Context的引用超过它本身的生命周期。Android应用程序限制使用的堆内存是16M
(2).静态变量拥有了更多的对象引用,内存仍然不会被销毁。

总结一下:避免Context泄漏应该注意的问题:

1.使用Application这种Context类型
2.注意对Context的引用不要超过它本身的生命周期
3.谨慎使用static关键字
4.Context里如果有线程,一定要在onDestory()里及时停掉。

感谢阅读,希望能帮助到大家谢谢大家对本站的支持!

您可能感兴趣的文章:Android获取应用程序名称(ApplicationName)示例详解Android中Application设置全局变量以及传值Android Application级别自定义Toast


--结束END--

本文标题: Android Application类的详细介绍

本文链接: https://lsjlt.com/news/23172.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android Application类的详细介绍
    Android Application类详解: Android中Application类的详细解释: 我们在平时的开发中,有时候可能会需要一些全局数据,来让应用中的所有Ac...
    99+
    2022-06-06
    Android
  • Android Handler的详细介绍
    Handler的定义  主要接受子线程发送的数据, 并用此数据配合主线程更新UI.  解释: 当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线...
    99+
    2022-06-06
    handler Android
  • Android Bitmap详细介绍
    代码如下: package com.testbitmapscale; import java.io.File; import java.io.FileInputStream;...
    99+
    2022-06-06
    bitmap Android
  • android AsyncTask详细介绍
    AsyncTask和Handler对比 1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接继承AsyncT...
    99+
    2022-06-06
    asynctask Android
  • Android中的WebView详细介绍
    Android中WebView的详细解释: 1. 概念: WebView(网络视图)能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页。 2. ...
    99+
    2022-06-06
    webview Android
  • Android Service类与生命周期详细介绍
    Android  Service类与生命周期 Service是Android四大组件与Activity最相似的组件,都代表可执行的程序,区别在于Service一直在后...
    99+
    2022-06-06
    service Android
  • C++的类与C#的类详细介绍
    本篇内容介绍了“C++的类与C#的类详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!许多编程人员学习C++总结经验为,有的觉得C++语...
    99+
    2023-06-17
  • Android 中的注解详细介绍
    注解是我们经常接触的技术,Java有注解,Android也有注解,本文将试图介绍Android中的注解,以及ButterKnife和Otto这些基于注解的库的一些工作原理. 归...
    99+
    2022-06-06
    注解 Android
  • Android Framework Application Framework层简单介绍
    引言               Andro...
    99+
    2022-06-06
    framework Android
  • 详细介绍python类及类的用法
    目录一、类的成员1.1 类的属性1.1.1 静态属性的创建方式1.1.2 实例属性1.2 类的方法二、类成员的修饰符三、类的特殊成员3.1 __doc__3.2  ...
    99+
    2024-04-02
  • Android onCreate( )方法详细介绍
    onCreate( )方法是android应用程序中最常见的方法之一,那么,我们在使用onCreate()方法的时候应该注意哪些问题呢?     ...
    99+
    2022-06-06
    方法 Android
  • Android NDK开发详细介绍
    Android之NDK开发  一、NDK产生的背景   Android平台从诞生起,就已经支持C、C++开发。众所周知,Android的SDK基于Java实现,这意味...
    99+
    2022-06-06
    ndk Android
  • 详细介绍java中的byte类型
    Java也提供了一个byte数据类型,并且是基本类型。java byte是做为最小的数字来处理的,因此它的值域被定义为-128~127,也就是signed byte。下面这篇文章主要给大家介绍了关于java中byte类型的相关资料,需要的朋...
    99+
    2020-01-07
    java入门 java byte类型
  • 详细介绍Python的鸭子类型
    鸭子类型基本定义 首先Python不支持多态,也不用支持多态,python是一种多态语言,崇尚鸭子类型。 以下是维基百科中对鸭子类型得论述: 在程序设计中,鸭子类型(英语:duck typing)是动态类...
    99+
    2022-06-04
    详细介绍 鸭子 类型
  • CSS元素类型的详细介绍
    这篇文章主要讲解了“CSS元素类型的详细介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“CSS元素类型的详细介绍”吧!目标1、元素类型分类依据和元素类型分...
    99+
    2024-04-02
  • Android中的广播(BroadCast)详细介绍
    什么是广播 在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。我们拿广播电台来做个比方。我们平常使用收音机收音是这样的:许许多多不同的广播电台...
    99+
    2022-06-06
    Android
  • Android中的Looper对象详细介绍
    Java 官网对Looper对象的说明: public class Looperextends ObjectClass used to run a message loop f...
    99+
    2022-06-06
    looper Android
  • Python 类和对象详细介绍
    目录对象 = 属性 + 方法self是什么公有和私有继承调用未绑定的父类方法使用super函数多重继承组合构造和析构_ _init_ _(self[, …])构造方法_...
    99+
    2024-04-02
  • Android  Service类与生命周期详细介绍
    Android  Service类与生命周期Service是Android四大组件与Activity最相似的组件,都代表可执行的程序,区别在于Service一直在后台运行且没有用户界面。Service的类图和生命周期先来看看Ser...
    99+
    2023-05-31
    android service bs
  • Android 启动模式详细介绍
    Android 启动模式:     启动模式:LaunchMode在多个Activity跳转的过程中扮演着重要的角色,它可以决定是否生成...
    99+
    2022-06-06
    启动 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作