• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > android:Activity数据传递之全局对象(application)

android:Activity数据传递之全局对象(application)

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android activity,android activity跳转,android activity传值,android activity透明,android activity栈等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

android:Activity数据传递之全局对象(application)


在activity之间数据传递中还有一种比较实用的方式,就是全局对象application

 

Application和Activity,Service一样是Android框架的一个系统组件,当Android程序启动时系统会创建一个Application对象,用来存储系统的一些信息。

Android系统自动会为每个程序运行时创建一个Application类的对象且只创建一个,所以Application可以说是单例(singleton)模式的一个类。

通常我们是不需要指定一个Application的,系统会自动帮我们创建,如果需要创建自己的Application,那也很简单!创建一个类继承Application并在AndroidManifest.xml文件中的application标签中进行注册(只需要给application标签增加name属性,并添加自己的 Application的名字即可)。

启动Application时,系统会创建一个PID,即进程ID,所有的Activity都会在此进程上运行。那么我们在Application创建的时候初始化全局变量,同一个应用的所有Activity都可以取到这些全局变量的值,换句话说,我们在某一个Activity中改变了这些全局变量的值,那么在同一个应用的其他Activity中值就会改变。

Application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局的单例的,所以在不同的Activity,Service中获得的对象都是同一个对象。所以可以通过Application来进行一些,如:数据传递、数据共享和数据缓存等操作。

除非是android应用程序清除内存,否则全局对象将一直可以访问。

通过下面这个例子了解一下全局变量

新建一个MyApplication类并使其继承Application

 

package com.example.activity;

import java.util.HashMap;

import android.app.Application;

public class MyApplication extends Application{
	/*
	 * 创建一个map集合
	 * */
	private static HashMap map=new HashMap();
	private static MyApplication application;
	/*
	 * 返回application
	 * */
	public static MyApplication getApplication(){
		return application;
	}
	/*
	 * 返回map集合
	 * */
	public static HashMap getMap(){
		return map;
	}
	/*
	 * 对于一个应用来说 android入口并不是Activity中的OnCreate()而是Application里面的Oncreate()
	 * 也就相当于是java中的Main方法,只不过这个方法被封装了
	 * */
	@Override
	public void onCreate() {
		// TODO Auto-generated method stub
		super.onCreate();
		//在Application创建时,读取Application
		application=this;
	}
}
并且在AndroidManifest.xml中为我们创建的MyApplication配置一下
   

 

在MainActivity中添加一个按钮 并为其添加监听事件,点击后跳转到OtherActivity

点击事件的代码为

 

				Intent intent=new Intent();
				intent.setClass(MainActivity.this, OtherActivity.class);
				MyApplication app=MyApplication.getApplication();
				app.getMap().put("姓名", "苏苏");
				app.getMap().put("星座", "双鱼座");
				startActivity(intent);
点击按钮后跳转到OtherActivity ,并在Activity中输出Map集合中的对象

 

 

Toast.makeText(OtherActivity.this,
				app.getMap().get("姓名")+" "+app.getMap().get("星座"), Toast.LENGTH_LONG).show();

当然了 在这个OtherActivity被销毁时 为了节省内存 我们需要从map中移出我们的对象

 

 

	protected void onDestroy() {
		// TODO Auto-generated method stub
		super.onDestroy();
		app.getMap().remove("姓名");
		app.getMap().remove("星座");
	}

就这么简单 下面附上运行结果

 

\\

 

 

 </div>

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 滑动关闭activity,滑动activity
  • 切换横竖屏的时候Activity的生命周期变化情况,activity生命周期
  • Android—Service与Activity的交互,androidactivity
  • Android中Activity运行时屏幕方向与显示方式详解,androidactivity
  • Android生命周期,activity生命周期
  • Android 面试题--Activity,android--activity
  • Android 四大组件之Activity(续2),androidactivity
  • Android动态加载Activity原理
  • [Android] Activity间切换,传递数据,androidactivity
  • Android Activity的生命周期简单总结

相关文章

  • 2017-05-26Android中使用ExpandableListView实现微信通讯录界面(完善仿微信APP),expandablelistview
  • 2017-05-26三种POST和GET的提交方式,postget提交
  • 2017-05-26android Notification介绍,androidnotification
  • 2017-05-227.1.1 Android网络编程要学的东西与Http协议学习
  • 2017-05-26源码解析Android中AsyncTask的工作原理
  • 2017-05-26使用Eclipse开发Android源码
  • 2017-05-26Linux内核系列—5.操作系统开发之特权级及特权级的转移,linux特权
  • 2017-05-26nginx使用let’s encrypt https证书并启用http2的使用记录
  • 2017-05-26android gridview画分割线
  • 2017-05-26android:QQ多种侧滑菜单的实现

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Mac Android studio提交本地项目到Github 已经配置 SSH KEY
    • 安卓第十五天笔记-图形图像一些简单处理,安卓第图形图像
    • 深度剖析:Android_PullToRefresh
    • 硅谷新闻1--引导界面GuideActivity,1--guideactivity
    • 滑动关闭activity,滑动activity
    • Android 自定义TextView实现文本内容自动调整字体大小以适应TextView的大小,androidtextview
    • android 在5.0以后不允许使用隐式Intent方式来启动Service,androidintent
    • android 自学日记(一)
    • Android特效专辑(八)——实现心型起泡飞舞的特效,让你的APP瞬间暖心
    • Android接入微信支付完全解析,太全了~

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有