虽然使用静态变量可以传递任何类型的数据,但官方并不建议这样做。如果在类中有大量使用静态变量(尤其是使用很占资源的变量,例如,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 感兴趣的加一下。
分享到:
相关推荐
在Activity之间数据传递中还有一种比较实用的方式 就是全局对象 实用J2EE的读者来说都知道Java Web的四个作用域 这四个作用域从小到大分别是Page Request Session和Application 其中Application域在应用程序的任何...
android中通过全局变量传递数据,对应博客请参考http://blog.csdn.net/seascoop/article/details/44885903
4.通过全局对象传递数据 在TransmitDataActivity.java中 package mobile.android.transmit.data; public class TransmitDataActivity extends Activity { @Override protected void onCreate(Bundle ...
在Activity之间数据传递中有一种比较使用的方式,就是全局对象,使用过J2EE的都应该知道JavaWeb的四个作用域,其中Application域在应用程序的任何地方都可以使用和访问,除非是Web服务器停止,Android中的全局对象...
使用ViewModel解决多个Activity数据共享问题(Kotlin版)
本文详细讲述了Android intent之间复杂参数传递方法。分享给大家供大家参考,具体如下: Intent是Activity与Activity之间,Activity与Service之间传递参数的介质,而这两种通常实现的是Java基本对象类型和String的...
23.1.1 探索Android全局搜索 23.1.2 为全局搜索启用建议提供程序 23.2 活动与搜索键交互 23.2.1 常规活动上的搜索键行为 23.2.2 禁用了搜索的活动的行为 23.2.3 通过菜单显式调用搜索 23.2.4 ...
23.1.1 探索Android全局搜索 23.1.2 为全局搜索启用建议提供程序 23.2 活动与搜索键交互 23.2.1 常规活动上的搜索键行为 23.2.2 禁用了搜索的活动的行为 23.2.3 通过菜单显式调用搜索 23.2.4 ...
: 粘性事件背景 LivaData 的设计之初是为了数据的获取,因此无论是观察开始之前产生的数据,还是观察开始之后产生的数据,都是用户需要的数据,只要是有数据,当 LifeCycle 处于激活状态,数据就会传递给观察者。...
Intent的另一种用途是发送广播消息,应用程序和Android系统都可以使用Intent发送广播消息,广播消息的内容是可以与应用程序密切相关的数据信息,也可以是Android的系统信息,例如网络连接变化、电池电量变化、接收的...