zoukankan      html  css  js  c++  java
  • My安卓知识3--多个activity之前共享数据的方法

    在网上搜这个问题的时候看到了有一篇文章说有五种方法:

    1.基于消息的通信机制  Intent ---boudle ,extra

    数据类型有限,比如遇到不可序列化的数据Bitmap,InputStream, 或者LinkList链表等等数据类型就不太好用。

    2. 利用static静态数据,public static成员变量;

    3.基于外部存储的传输,  File/Preference/ Sqlite ,如果要针对第三方应用需要Content Provider

    4.基于IPC的通信机制context 与Service之间的传输,如Activity与Service之间的通信,定义AIDL接口文件。

    5. 基于Application Context

    真心觉得第五个方法挺好用的,就和java web里的session一样,但是说实话还是session好用。大家说这是更为优雅的实现方式。

    只要多建一个类就行。比如我想在多个activity中共享已经登陆的用户名,我就建了一个Username类,名字很普通,具体代码如下:

    package com.example.cardemo1;

    import android.app.Application;

    public class Username extends Application{
        private String username;

        public String getUsername() {
            return username;
        }

        public void setUsername(String username) {
            this.username = username;
        }
        
    }

    然后,我只要在别的activity中写入以下两条语句就可以使用username

    Username uname = (Username) getApplicationContext();
            String name =  uname.getUsername();

    是不是很方便?

  • 相关阅读:
    L1-045 宇宙无敌大招呼 (5分)
    L1-044 稳赢 (15分)
    L1-043 阅览室 (20分)
    L1-042 日期格式化 (5分)
    L1-041 寻找250 (10分)
    L1-040 最佳情侣身高差 (10分)
    L1-039 古风排版 (20分)
    L1-038 新世界 (5分)
    L1-037 A除以B (10分)
    利用C一种最有效的文件存储方式——16bit有符号位2进制存储
  • 原文地址:https://www.cnblogs.com/urnotajie/p/5585329.html
Copyright © 2011-2022 走看看