`
marine8888
  • 浏览: 544417 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android--全局变量 很好很强大

阅读更多

 

As you know, each Activity is also a Context, which is information about its execution environment in the broadest sense. Your application also has a context, and Android guarantees that it will exist as a single instance across your application.

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 and make it available for your entire application. You can access it from any context using the Context.getApplicationContext() method (Activity also provides a method getApplication() which has the exact same effect):

 

  

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 or singleton,

but integrates quite well into the existing Android framework.

Note that this will not work across processes (should your app be one of the rare ones that has multiple processes).

 

 

然后再manifest中添加应用:

<application android:name=".MyApp" android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".ClickableListItemActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

  

说明:

  1. 需添加的内容:android:name=".your_App_Name"

  2. 位置:当前activity所在的位置,(我刚开始以为需要新建一个<application></application>)

分享到:
评论
1 楼 flyingsir_zw 2014-04-01  
程序退出,后台服务怎么使用全局变量。

相关推荐

    Android-HeapSnap是一款针对Android进程堆内存泄露追踪工具

    - **静态变量与单例模式**:这两种常见的编程模式如果不当使用,很容易导致全局内存泄露。 5. **优化内存管理策略**: - 及时释放不再需要的资源,如Bitmap、Cursor、View等。 - 避免使用静态变量持有Context或...

    Android应用源码之3.第一个Android程序-IT计算机-毕业设计.zip

    在Android应用开发的世界里,...对于初次接触Android开发的学生来说,这是一个很好的起点,可以帮助他们逐步掌握Android应用的构建和运行流程。在实际开发中,还需要不断学习和实践,以掌握更多高级特性和最佳实践。

    windows下抓android 4.4 systrace

    安装完毕后,需要将其tools文件夹下的platform-tools路径也添加到环境变量PATH中,以便可以全局调用adb(Android Debug Bridge)等工具。 5. 执行systrace的步骤: a. 使用USB线连接Android设备到Windows电脑。 b. ...

    android拍摄视频并上传到PHP服务器_摄像功能代码.zip

    总之,这个项目涵盖了Android的摄像头使用、视频录制、网络编程以及服务器端文件处理等多个技术点,对于Android开发者来说是很好的学习和实践素材。通过实践,你不仅可以掌握这些技术,还能了解到如何将它们整合到一...

    Android Studio配置文件

    Android Studio是Google...同时,这也是团队协作中一个很好的共享资源,让团队成员使用相同的开发环境,避免因配置差异带来的困扰。总之,理解和管理好Android Studio的配置文件对每个Android开发者来说都至关重要。

    Android面试题之⾃动化构建⼯具Gradle配置篇

    - **兼容性**:Gradle能够很好地与Maven和其他仓库兼容,这使得开发者能够在构建过程中轻松地引用各种库。 2. **Gradle Wrapper是什么?** - Gradle Wrapper是一个脚本文件,它可以在系统上没有安装Gradle的情况...

    gradle-3.3-all绿色版

    - **配置环境变量**:为了方便全局使用,需要在系统环境变量PATH中添加Gradle的bin目录路径。 - **验证安装**:打开终端或命令提示符,输入`gradle -v`,如果正确配置,将显示Gradle的版本信息,表明已成功设置。 ...

    opencv人脸识别

    这里定义了两个全局变量:`storage`用于存储检测到的对象序列;`cascade`则用于存储级联分类器。 - **主函数** ```cpp int main(int argc, char** argv) ``` 主函数初始化级联分类器,并加载测试图片,然后...

    自用存档 打印frida使用过程中出现的复杂类型

    Frida是一款强大的动态代码插桩工具,常用于逆向工程、调试和自动化测试。它允许你在运行时对目标应用程序进行交互式脚本编写,从而分析和修改程序的行为。在这个自用存档中,我们看到重点是关于在使用Frida过程中...

    AndroidmkDemo

    Android.mk文件是Android NDK(Native Development Kit)的一部分,用于编译和链接C/C++源码,使得开发者能够利用C/C++的强大性能来实现特定的计算密集型任务或者利用已有的C/C++库。 **Android.mk文件详解** ...

    Android Studio 1.2版安装设置图文教程

    Android Studio是Google...总的来说,Android Studio 1.2版提供了更加用户友好的安装和设置体验,同时保持了强大的开发功能。通过遵循上述步骤,开发者可以高效地配置他们的开发环境,更好地专注于应用的创新和实现。

    gradle-6.8.1-all.zip

    对于包含多个子项目的大型工程,Gradle提供了很好的支持,可以在顶层`build.gradle`文件中管理和协调各个子项目的构建。 10. **自定义源码布局** Gradle允许自定义源代码目录结构,不同于Maven的固定结构,使得...

    应用源码之14.程序调试技术学习.zip

    良好的调试习惯能提升效率,比如编写可测试的代码、避免全局变量、保持函数单一职责等。同时,学会利用单元测试和集成测试,可以在编码阶段就发现潜在问题。 以上是关于“应用源码之14.程序调试技术学习”的主要...

    gradle-3.4-rc-1-all.zip

    你可以将Gradle添加到系统的PATH环境变量中,以便全局使用。此外,也可以通过配置IDE如IntelliJ IDEA或Eclipse,集成这个版本的Gradle,以便在开发过程中无缝切换和使用。 总的来说,Gradle 3.4-rc-1是一个功能丰富...

    opencvdemo.zip

    标题 "opencvdemo.zip" 暗示这是一个关于OpenCV在Android Studio中使用的示例项目,特别是利用NDK进行条形码检测的开发环境。...同时,这也是一个很好的实践,展示了Android Studio中混合编程(Java与C++)的工作流程。

    gradle-2.1-all

    Gradle 是一个强大的自动化构建工具,尤其在Java、Android开发领域广泛应用。Gradle采用Groovy和Kotlin等动态语言编写构建脚本,提供灵活的项目结构配置和依赖管理。"gradle-2.1-all"这个压缩包包含了Gradle 2.1版本...

    FlutterBoostDemo.zip

    3. **数据共享**:原生应用与 Flutter 模块之间可以方便地共享数据,如通过参数传递或者使用全局变量。 4. **兼容性**:FlutterBoost 能够很好地兼容多种版本的 Flutter SDK 和不同操作系统,确保在不同环境下的稳定...

    HBuilderProjects.7z

    【标题】"HBuilderProjects.7z"是...对于初学者来说,这是一个很好的实践案例,可以从中了解uni-app项目的整体结构和开发流程。对于有经验的开发者,它可能是一个可以借鉴或借鉴的部分,以便快速构建自己的跨平台应用。

    Python库 | pyadb_gui-1.0.6.9.tar.gz

    1. **安装ADB**: ADB通常包含在Android SDK Platform Tools中,开发者需要将其添加到系统PATH环境变量中以便全局使用。`pyadb_gui`则无需这一步骤,因为它内置了ADB功能。 2. **连接设备**: ADB可以连接到通过USB...

Global site tag (gtag.js) - Google Analytics