使用application传递全局变量
来源:互联网 发布:redis缓存什么数据 编辑:程序博客网 时间:2024/06/08 14:14
1、有关application的说明
(1)Application和Activity,Service一样是Android框架的系统组件,当Android程序启动时系统创建一个Application对象,用来存储系统的一些信息。Android系统自动回位每个程序运行时创建一个Application类的对象且只创建一个,所以Application可以说是单例模式的一个类。
(2)通常我们不需要指定一个application的,系统会自动帮我们创建,如果我们需要自己创建一个Application,只需要创建一个类继承Application并且在AndroidMainfest.xml文件中的application标签中进行注册(在application标签添加name属性,并且添加自己Application的名字就可以)
(3)启动Application时,系统会创建一个PID,即进程ID,所有的Activity都会在此进程上运行。那么我们在Application创建的时候初始化全局变量,同一个应用的所有Activity都可以取到这些全局变量的值,换句话说,我们在某一个Activity中改变了这些全局变量的值,那么在同一个应用的其他Activity中值就会改变。
(4)Application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以可以通过Application来进行一些,如:数据传递、数据共享和数据缓存等操作。
2、应用实例
MainActivity
package com.example.test;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;public class MainActivity extends Activity { private MyApp myApp; private String log; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myApp=(MyApp) getApplication(); Log.i(log,"修改前的value"+myApp.getValue()); myApp.setValue("hello"); Log.i(log,"修改后的value"+myApp.getValue()); Intent intent=new Intent(this,SecondActivity.class); startActivity(intent); } }
SecondActivity
package com.example.test;import android.app.Activity;import android.os.Bundle;import android.util.Log;public class SecondActivity extends Activity { private MyApp myApp; private String log; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); myApp=(MyApp)getApplication(); Log.i(log,"调用secondActivity查看"+myApp.getValue()); }}
MyApp
package com.example.test;import android.app.Application;public class MyApp extends Application{ private String str="VALUE"; private String value; @Override public void onCreate(){ super.onCreate(); setValue(str); } public void setValue(String value) { // TODO Auto-generated method stub this.value=value; } public String getValue(){ return value; }}
AndroidMainfest.xml
<!--添加了name属性--> <application android:name="MyApp" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.test.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".SecondActivity"></activity> </application>
- 使用application传递全局变量
- 使用application类定义全局变量传递参数
- 使用Application做全局变量
- 5. Android使用意图传递数据之全局变量传递-Application类
- 使用全局变量传递数据
- Android使用Application代替全局变量
- 使用Application类保存全局变量
- android 使用Application保存全局变量
- Android Application (全局变量)学习使用
- <Android>Application全局变量的使用
- android使用application保存全局变量
- android 全局变量Application类使用
- Android使用Application代替全局变量
- Android Application (全局变量)学习使用
- [Android]使用全局变量传递数据
- android传递数据方式1---通过Application类实现全局变量
- Android application对象的使用 全局变量
- Android application对象的使用 全局变量
- Android 系统开发系列五
- Android手机摇一摇功能的简单实现
- C++垃圾回收器的实现(附auto_ptr 与CComPtr区别)
- 01背包
- C# 遍历文件
- 使用application传递全局变量
- iOS-多线程之GCD
- Android apk 签名总结
- syntaxhighlighter高亮动态代码
- java -verbose命令
- Oracle 跨用户查看视图
- Android 三大图片缓存原理、特性对比
- 下拉菜单 ---树状展现
- xilinx fpga学习笔记2