--如想在整个应用中使用,在java中一般是使用静态变量,而在android中有个更优雅的方式是使用Application context。
As you know, each Activity is also a Context, which is informationabout its execution environment in the broadest sense. Your applicationalso has a context, and Android guarantees that it will exist as asingle instance across your application.
--每个Activity 都是Context,其包含了其运行时的一些状态,android保证了其是single instance的。
The way to do this is to create your own subclass of android.app.Application,and then specify that class in the application tag in your manifest.Now Android will automatically create an instance of that class andmake it available for your entire application. You can access it fromany context using the Context.getApplicationContext() method (Activityalso provides a method getApplication() which has the exact sameeffect):
--方法是创建一个属于你自己的android.app.Application的子类,然后在manifest中申明一下这个类,这是android就为此建立一个全局可用的实例,你可以在其他任何地方使用Context.getApplicationContext()方法获取这个实例,进而获取其中的状态(变量)。
给个例子:
- class MyApp extends Application {
- private String myState;
- public String getState(){
- return myState;
- }
- public void setState(String s){
- myState = s;
- }
- }
- class Blah extends Activity {
- @Override
- public void onCreate(Bundle b){
- ...
- MyApp appState = ((MyApp)getApplicationContext());
- String state = appState.getState();
- ...
- }
- }
复制代码
This has essentially the same effect as using a static variable orsingleton, but integrates quite well into the existing Androidframework. Note that this will not work across processes (should yourapp be one of the rare ones that has multiple processes).--这个效果就是使用静态变量是一样的,但是其更符合android的架构体系。
分享到:
相关推荐
本篇文章将详细探讨如何在Android项目中使用多个`Application`,并提供一个`ApplicationDemo`作为参考。 1. **为什么要使用多个Application** - **隔离不同功能**:如果你的应用包含多个模块,每个模块有自己的...
《Professional Android 4 Application Development》是一本针对Android应用开发的专业指南,由Rob Miles撰写,是Android开发者中的经典之作。这本书全面覆盖了Android 4(Ice Cream Sandwich)版本的应用开发技术,...
以上就是使用`Application`来实现Android完全退出系统实例的主要步骤和知识点。需要注意的是,强制结束应用进程可能会导致数据丢失或用户体验问题,因此在实际开发中需谨慎处理。此外,Android系统通常不鼓励开发者...
11. **SQLite数据库**:介绍如何在Android中使用SQLite进行数据存储和查询。 12. **网络编程**:教授如何处理HTTP请求,实现网络通信,包括使用AsyncTask进行异步操作。 13. **资源管理**:包括字符串、图像、样式...
《Professional Android 2 Application Development》是2010年由Wrox出版社出版的一本关于使用Android SDK 2.0进行专业应用开发的书籍。这本书详细介绍了如何利用Android平台开发高质量、功能丰富的应用程序,适用于...
If you’re an experienced developer, you can start creating robust mobile Android apps right away with this professional guide to Android 4 application development. Written by one of Google’s lead ...
在深入理解Android的运行机制之前,我们首先需要了解的是Android的基本架构,这有助于我们更好地把握Application类在Android中的作用。 - **Android基本架构**: - **Linux内核层**:负责处理硬件驱动、进程管理、...
在Android开发中,`Application`类是每个应用程序的全局上下文,它在应用程序启动时创建,并且在整个应用程序生命周期内只创建一次。`Application`类提供了一个全局环境,开发者可以在这个环境中进行全局变量的初始...
the Android SDK, and using location-based services Details how to package and publish your applications to the Android Market Beginning Android 4 Application Development pares down the most essential...
- **知识点**:探讨Android中的Intent机制,包括显式和隐式Intent的使用场景;同时介绍如何使用Broadcast Receiver处理系统或应用广播消息。 - **第6章:利用互联网资源** - **知识点**:教授如何让Android应用...
在Android应用开发中,`Application`对象是每个应用程序的基础组件,它是所有Activity、Service等组件的顶级父类。本篇笔记将深入探讨`Application`对象的使用,包括如何利用它进行数据传递以及如何避免常见的内存...
这里给出一个示例Activity,演示如何在Activity中使用这些全局变量: ```java package com.tianjf; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util...
书中会详细介绍如何下载、安装和配置Android Studio,包括设置SDK路径、创建虚拟设备(AVD)以及使用Gradle构建系统。 2. **基本概念**:书中会讲解Android系统的架构,包括应用程序框架、运行时环境、库和API等。...
源代码中可能包含了使用Android Studio创建项目的配置文件和结构。 三、Java语言基础 Android应用主要使用Java语言编写,因此对Java的基本语法、面向对象编程、异常处理和集合框架的理解是必要的。源代码中将展示...
以上代码展示了如何在Application中安全地使用SharedPreferences来缓存数据。注意使用`apply()`方法代替`commit()`,以避免阻塞主线程。 总结,虽然Application看似方便地提供了全局缓存的途径,但其潜在问题不容...
**Application** 是 Android 框架中的一个重要组件,与 **Activity**、**Service** 并列为四大组件之一。它在应用程序启动时由系统自动创建,并在整个应用生命周期中保持唯一性。 **特点:** - **单例性**:整个...
总的来说,"android application"涉及的知识点广泛,包括但不限于Activity的生命周期管理、Intent的使用、自定义Application类、AndroidManifest.xml的配置等。深入理解这些概念和机制对于开发高效且用户体验良好的...
在Android应用开发中,"Android-Application被回收引发空指针异常分析(消灭全局变量)"是一个常见的问题,尤其对于新手开发者来说,可能会遇到这样的困惑。这篇文章主要探讨了当Application对象被系统回收后,如何...