zoukankan      html  css  js  c++  java
  • Android官方推荐全局对象传递数据

    虽然使用静态变量可以传递任何类型的数据,但官方并不建议这样做。如果在类中有大量使用静态变量(尤其是使用很占资源的变量,例如,Bitmap对象)可能会造成内存溢出异常,而且还可能因为静态变量在很多类中出现而造成代码难以维护和混乱,因此,用全局对象可以进行传递,这种方式可以完全取代静态变量。

    Android中的全局对象作用域:除非将Android程序彻底清除出内存,否则全局对象将一直可以访问。

    1.首先建一个全局类:

    package cn.jiabin.demo.view;
    
    import android.app.Application;
    
    public class MyApplication extends Application {
    	public String name;
    	public int age;
    }


    2.将这个全局类配置到AndroidManifest.xml文件中:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="cn.jiabin.demo.view"
        android:versionCode="1"
        android:versionName="1.0" >
        <uses-sdk android:minSdkVersion="8" />
        <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:name=".MyApplication" >
            <activity
                android:label="@string/app_name"
                android:name=".MyDemoActivity" >
                <intent-filter >
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity android:name=".A" />
        </application>
    </manifest>


    3.在正常的类中使用:

    	MyApplication myApp = (MyApplication) getApplication();
    				myApp.name = "张三";
    				myApp.age = 23;


    官方推荐这种方式传递数据。

    版权所有,如需转载,注明出处,谢谢合作。沈阳--斌子。

    注明:QQ技术交流群:108614806   感兴趣的加一下。

  • 相关阅读:
    linux中内存使用,swap,cache,buffer的含义总结
    haproxy启动时提示失败
    pcs与crmsh命令比较
    用yum下载rpm包(不安装)到指定目录
    Openstack的镜像属性
    ceph 对接openstack liberty
    ceph 创建和删除osd
    linux之fstab文件详解
    OpenStack Swift集群部署流程与简单使用
    swift(Object Storage对象存储服务)(单节点)
  • 原文地址:https://www.cnblogs.com/zhiqiangsimida/p/2774635.html
Copyright © 2011-2022 走看看