`

关于Android 中的Context

阅读更多
The more general problem you are encountering is how to save stateacross several Activities and all parts of your application. A staticvariable (for instance, a singleton) is a common Java way of achievingthis. I have found however, that a more elegant way in Android is toassociate your state with the Application context.

--如想在整个应用中使用,在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的context使用

    在Android开发中,Context是一个非常核心的概念,它代表了应用程序的环境或上下文,提供了与系统服务交互的能力。本文将详细介绍Android中Context的使用,并通过一个简单的Demo展示如何在工具类和View中灵活地获取和...

    android中Context深入详解

    Android 中 Context 深入详解 Context 是 Android 中一个非常重要的概念,它是 Android 应用程序的核心组件之一。Context 提供了许多有用的方法和变量,用于访问应用程序的资源和组件。本文将深入探讨 Android 中 ...

    谈谈Android里的Context的使用

    大家好,今天给大家分享一下Android里的Context的一些用法. 这里大致可以分为两种:一是传递Context参数,二是调用全局的Context. 其实我们应用启动的时候会启动Application这个类,这个类是在AndroidManifest.xml...

    Android Context使用例子.

    在Android开发中,`Context`是一个非常核心的概念,它就像是应用程序的一个全局环境或者上下文,提供了与系统服务交互的能力。`Context`的理解和正确使用对于编写健壮的Android应用至关重要。下面将详细介绍`Context...

    012_android 之消息提示toast 和Context

    在Android开发中,消息提示和上下文(Context)是两个非常基础且重要的概念。本教程“012_android 之消息提示toast 和Context”将深入讲解这两个关键知识点,帮助开发者更好地理解和运用它们。 首先,我们来谈谈...

    android_context详解

    `Context`,直译为“上下文”,在Android中被定义为接口,用于获取关于应用环境的全局信息。它是一个抽象类,具体实现由Android系统提供,最常见的是`ContextImpl`类。通过`Context`,开发者可以访问应用特定的资源...

    Android Context 浅析

    简要介绍android context 的用法

    android全局context工具类

    android:name="工具类的路径" 调用: Toast.makeText(MainApplication.getContext(), "文本", Toast.LENGTH_SHORT).show(); 不管你想在项目的任何地方使用Context,只需要调用一下MainApplication.getContext()...

    Android全局变量和Context

    Android全局变量和Context的实现方法

    避免 Android中Context引起的内存泄露

    在Android开发中,Context是应用程序的核心组成部分,它提供了与Android系统服务交互的接口。然而,不恰当的使用Context可能导致内存泄露,从而影响应用性能和用户体验。本文将深入探讨由Context引起的内存泄露问题...

    Android 中Context的使用方法详解

    在 Android 开发中,Context 是一个非常重要的概念,它提供了关于应用环境全局信息的接口,允许获取以应用为特征的资源和类型,同时启动应用级的操作。 Context 的使用方法非常广泛,涵盖了应用的各个方面。 在使用...

    Android Context与GetApplicationContext的区别及使用1

    在Android开发中,Context是一个至关重要的概念,它扮演着应用程序组件与系统服务交互的关键角色。Context可以理解为应用运行时的上下文环境,提供了对系统资源和组件的访问接口。本文将深入探讨Context的基本概念,...

    Context-Menu.Android源码

    在Android编程中,上下文菜单(Context Menu)是一种特殊的对话框,它只显示与当前屏幕上的特定项目相关的操作。用户通常通过长按某个视图元素来触发上下文菜单的显示。创建和管理上下文菜单涉及到注册菜单项、重写`...

    android demo,BaseAdapter传递context的应用

    `Context`在Android开发中扮演着核心角色,它是应用程序运行时环境的抽象表示,提供了与系统服务交互的接口。在`BaseAdapter`中,`Context`主要用于以下几个方面: 1. **视图创建**:在`getView()`方法中,我们需要...

    通过反射获取Context实例的Demo

    在Android开发中,Context是应用程序的核心组件之一,它提供了与Android系统交互的接口,包括启动Activity、发送广播、访问资源等操作。当我们需要在非Activity或非Service类中使用Context时,可以通过各种方式获取...

    android context理解

    在Android开发中,`Context`是一个至关重要的概念,它扮演着连接应用组件、系统服务以及资源的桥梁角色。本文将深入探讨`Context`在Android中的作用,以及如何正确使用以避免常见的内存泄漏问题。 #### 一、Context...

    反射获取Context的实例

    首先,让我们了解`Context`在Android中的角色。`Context`是Android应用的基础组件,它提供了与系统交互的各种方法,如启动Activity、发送Broadcast、访问资源等。通常,我们可以在Activity、Service或Application中...

    Android编程获取全局Context的方法

    在Android编程中,Context是一个非常重要的概念,它代表了应用程序的环境或上下文,提供了访问系统服务、资源和应用程序特定信息的入口。然而,在大型应用中,由于Activity、Service等组件生命周期的不同,直接通过...

    android Context Menu With Icon

    在Android开发中,Context Menu是一种常见的用户交互设计,它允许用户在长按或者右键点击一个视图或控件时,弹出一个包含多个选项的菜单。本篇将深入探讨如何在Android应用中实现带有图标的Context Menu,以及相关的...

    Android中上下文(context)用法详解

    ### Android中上下文(context)用法详解 #### 一、Context基本概念 **Context** 是 Android 开发中一个非常核心且重要的概念。它提供了一系列方法来帮助开发者访问应用程序的各种资源和服务。 - **定义**: `...

Global site tag (gtag.js) - Google Analytics