`
jguangyou
  • 浏览: 375730 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android application类和全局数据使用

 
阅读更多

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

 

1 public class GameApplication extends Application {  

 2     private int score;   

 3       

 4     public int getScore() {   

 5         return score;   

 6     }   

 7     public void setScore(int score) {  

 8         this.score = score;   

 9     }  

 10 }

 
这样我们就扩展了自己的属性,不过还没有结束,另外一个比较关键的一步,是需要在androidManifest.xml文件中将我们扩展后的Application类指定上去,例如下面的代码:
 

 <application 
 android:name=".GameApplication"   
android:icon="@drawable/icon"   
android:label="@string/app_name"> 

 
这样指定好之后,我们的自定义Application就算完成了,然后我们可以很方便的在任何Activity和View中来获取我们的分数属性,代码如下:
 
在Activity中:
1 //设置分数   2 ((GameApplication)getApplication()).setScore(100)  3   4 //获取分数   5 ((GameApplication)getApplication()).getScore(); 
复制代码
在View中:
1 ((GameApplication)getContext().getApplicationContext()).getScore() 
 
注:
在使用这种方式的时候可能会遇到getApplication返回null的情况,有可能是调用getApplication的时机不对,如果是在类未定义完成的地方(比如变量定义部分),此时无法得到实例,所以就会出现空指针

分享到:
评论

相关推荐

    Android中用Application类实现全局变量

    然而,在某些场景下,我们需要一种更简单且全局的方式来管理这些数据,这时候就可以考虑使用`Application`类来实现全局变量。 #### 1. Application 类简介 `Application`是Android四大组件之一,它代表了应用程序...

    android Application全局传值替代Intent

    在这种情况下,我们可以考虑使用`Application`类来实现全局传值,以替代Intent传值。 Android的`Application`类是每个Android应用的顶级组件,它是所有Activity、Service等的父类。开发者可以创建自定义的`...

    application类使用示例

    `Application`类是Android系统最先创建的组件,它的生命周期贯穿整个应用程序,因此,它为开发者提供了一个全局的共享数据和状态管理的平台。本示例将详细介绍如何自定义`Application`类并在多个`Activity`之间传递...

    Android Application部分详解

    本文从Android的运行机制入手,重点介绍了Application类的重要性和使用方法。通过本文的学习,读者应该能够更好地理解和运用Application类,从而提升Android应用程序的开发效率和质量。需要注意的是,随着Android...

    android往Application缓存数据的弊端和解决小demo

    Application类作为所有Activity的顶级容器,常被开发者用来全局存储数据。然而,将数据直接缓存在Application对象中并非最佳实践,存在一些潜在弊端。本文将深入探讨这些弊端,并提供一个简单的解决方案示例。 **...

    Android-Application被回收引发空指针异常分析(消灭全局变量

    1. 使用单例模式:创建一个单例类来保存全局变量,这样即使Application被回收,单例中的数据仍然可以保持。单例类应设计为静态内部类,以确保只有在首次使用时才会初始化。 2. 使用SharedPreferences:对于不需要...

    Application数据共享Android

    虽然`Application`提供了全局数据共享的便利,但也要注意以下几点: - 数据安全:由于`Application`中的数据全局可访问,因此在处理敏感信息时要格外小心,避免数据泄露。 - 内存泄漏:如果在非静态内部类或匿名...

    android 多个application怎么使用

    在Android系统中,每个应用程序都默认关联一个`Application`类,它是程序的全局上下文,负责初始化全局变量、设置全局配置等。然而,在某些特定情况下,我们可能需要创建多个`Application`来处理不同的任务或者使用...

    使用Application做全局变量

    本篇文章将深入探讨如何使用`Application`作为全局变量,并结合`Intent`和`Activity`来传递数据。 首先,`Application`类是所有`Activity`的基类,它的生命周期始于应用程序启动,结束于应用程序退出。因此,如果你...

    Android通过全局变量传递数据

    在Activity之间数据传递中还有一种比较实用的方式 就是全局对象 实用J2EE的读者来说都知道Java Web的四个作用域 这四个作用域从小到大分别是Page Request Session和Application 其中Application域在应用程序的任何...

    使用Application做android完全退出系统实例

    以上就是使用`Application`来实现Android完全退出系统实例的主要步骤和知识点。需要注意的是,强制结束应用进程可能会导致数据丢失或用户体验问题,因此在实际开发中需谨慎处理。此外,Android系统通常不鼓励开发者...

    Android Application

    Application 组件为 Android 应用提供了强大的功能,可用于全局资源管理、数据共享与缓存等。正确地使用 Application 可以极大地提高应用的性能和用户体验。然而,在使用过程中需要注意内存泄漏等问题,合理规划数据...

    Android笔记 Application对象的使用-数据传递以及内存泄漏问题

    本篇笔记将深入探讨`Application`对象的使用,包括如何利用它进行数据传递以及如何避免常见的内存泄漏问题。 首先,让我们了解`Application`的基本概念。在Android系统启动时,会先创建`Application`实例,然后依次...

    android application

    总的来说,"android application"涉及的知识点广泛,包括但不限于Activity的生命周期管理、Intent的使用、自定义Application类、AndroidManifest.xml的配置等。深入理解这些概念和机制对于开发高效且用户体验良好的...

    android全局事件监听器

    4. **Application类**:扩展自定义的Application类,可以在其生命周期内注册和管理全局监听器,确保在整个应用生命周期内都能生效。 **EventBus**:标签提到了EventBus,这是一个流行的消息总线库,用于简化Android...

    android activity跳转 Application Context实现共享数据

    当我们需要在多个Activity之间传递数据时,通常会使用Intent对象,而通过Application Context则可以实现全局的数据共享。下面将详细探讨这些知识点。 一、Activity跳转 Activity之间的跳转是Android应用中最常见的...

    Android操作Application的代码例子

    在Android开发中,`Application`类是每个应用程序的全局上下文,它在应用程序启动时创建,并且在整个应用程序生命周期内只创建一次。`Application`类提供了一个全局环境,开发者可以在这个环境中进行全局变量的初始...

    通过全局对象传递数据

    在Android中,我们通常会使用Application类或单例模式来创建全局对象。这两种方法都可以让我们在整个应用中方便地存储和共享数据。 1. **自定义Application类** Android系统为每个应用程序提供了一个默认的...

    android studio 源码AndroidViewModel(让ViewModel访问全局资源);视图绑定;

    这个类扩展自`ViewModel`,并添加了对`Application`上下文的访问权限,这意味着`AndroidViewModel`可以方便地访问全局资源,如SharedPreferences、数据库或网络服务。这样做的好处是,即使用户旋转设备或应用程序被...

    Android编程之Application设置全局变量及传值用法实例分析

    在Android开发中,全局变量和跨活动(Activity)传值是常见的需求,特别是在需要在整个应用程序范围内共享数据时。本文将详细解析如何利用`Application`类来实现这一目标。 `Application`类是Android系统中的一个...

Global site tag (gtag.js) - Google Analytics