博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android--通过Application传递数据
阅读量:7165 次
发布时间:2019-06-29

本文共 2024 字,大约阅读时间需要 6 分钟。

在整个Android程序中,有时需要保存某些全局的数据(如:用户信息),方便在程序的任何地方调用。在Activity之间数据传递中有一种比较使用的方式,就是全局对象,使用过J2EE的都应该知道JavaWeb的四个作用域,其中Application域在应用程序的任何地方都可以使用和访问,除非是Web服务器停止,Android中的全局对象非常类似于JavaWeb中的Application域,除非是Android应用程序清除内存,否则全局对象将一直可以访问。

  在启动Application时,系统会创建一个PID,即进程ID,所有的Activity就会在此主进程上运行。所以,在同一Application中所有的Activity都可以通过Activity.getApplication()方法获取到同一个Application对象,继承Application类,即可访问自定义数据。

  简单来说,使用Application传递数据步骤如下:

  1. 创建新class,取名MyApp,继承android.app.Application父类,并在MyApp中定义需要保存的属性,如:用户名,用户类型。
  2. 在Activity中,通过Activity.getApplication()方法获取到MyApp对象(需要强制转换),对其数据进行操作。
  3. 修改AndroidManifest.xml文件中的application节点的android:name属性(android:name=".MyApp")。

代码示例

步骤一:

public class MyApp extends Application {    private String name;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Override    public void onCreate() {        // TODO Auto-generated method stub        super.onCreate();                setName("Dick");            }}

步骤二:

 

public class MainActivity extends Activity {    private Button btn;    private MyApp myApp;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                btn=(Button)this.findViewById(R.id.btn);                btn.setOnClickListener(new View.OnClickListener() {                        @Override            public void onClick(View v) {                // TODO Auto-generated method stub                myApp=(MyApp)getApplication();                myApp.setName("jack");                Intent intent=new Intent(MainActivity.this, otherActivity.class);                startActivity(intent);                            }        });            }}

步骤三:

 本文转自承香墨影博客园博客,原文链接:http://www.cnblogs.com/plokmju/p/android_appliction.html,如需转载请自行联系原作者

你可能感兴趣的文章
C语言,数据类型
查看>>
WPF 4.0 DatePicker 快速录入
查看>>
Google Protocol Buffers 快速入门(带生成C#源码的方法)
查看>>
HTML5 – 4.canvas
查看>>
[Data Structure & Algorithm] 七大查找算法
查看>>
MVC后台与前台交互的问题。。。
查看>>
EntityFramework之Log(五)
查看>>
[翻译] Icon and Image Sizes
查看>>
云计算设计模式(十八)——重试模式
查看>>
KBMMW 4.84.00 发布
查看>>
Debug Assertion Failed! Expression: _pFirstBlock == pHead
查看>>
BZOJ 1877: [SDOI2009]晨跑 费用流
查看>>
zabbix 2.0.6 监控nginx
查看>>
简明 Vim 练级攻略
查看>>
Linux内核OOM机制的详细分析
查看>>
Go项目结构和模块导入
查看>>
磁盘性能分析之iotop
查看>>
华为第七届无线编码大赛总结(转)
查看>>
[LeetCode] Game of Life 生命游戏
查看>>
nefu 462 fib组合
查看>>