Android Application存取公共数据的实例详解

发布时间 - 2026-01-11 02:22:09    点击率:

Android Application存取公共数据的实例详解

Android系统在运行每一个程序应用的时候,都会创建一个Application对象,用于存储与整个应用相关的公共变量。
一个Android应用只会生成一个Application对象,在不同的Activity中获取的Application对象是一样的,所以Application对象是一个单例(SingleTon)。

Application对象非常适合用于存储一些与整个应用相关数据,例如应用版本,应用登录账户,数据缓存等。
利用Application对象存储公共数据或数据传递

在android开发中,activity的切换是很频繁的,差不多可以和一个网站中不同网页之间的切换一样。那么不同的activity之间需要存储公共信息(如只有一个当前登录用户)以及数据传递等。下面就是一种利用Application对象存储登录用户信息的方法,可以发现这很方便不同的activity获取登录用户信息

public class MyApplication extends Application {
   
   public String appVersion = "v1.0";
   
   //当前登录用户
   private User loginUser = new User();
   
   public User getLoginUser(){
   return loginUser;
   }
   
   public void userLogin(User user){
   loginUser.setUserId(user.getUserId());
   loginUser.setUserName(user.getUserName());
   }
   
   public void userLogout(){
   loginUser = new User();
   }
}
  
public class MainActivity extends Activity {
 
 private MyApplication mApplication;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   // 获取整个应用的Application对象
   // 在不同的Activity中获取的对象是同一个
   mApplication = (MyApplication) getApplication();
 }
 
 /**
 * 一般只有在登录界面中设置登录用户信息,在其他的Activity中
 * 只要通过Application对象就可以获取登录用户信息
 */
 private void login(){
   User user = new User();
   user.setUserId(1);
   user.setUserName("Raysmond");
   // 将登录用户信息保存到Application对象中
   mApplication.userLogin(user);
 }
}

可以发现通过Application对象,在不同的Activity之间可以方便地实现数据共享。这比在每次切换activity时通过Bundle传递数据方便多了。

以上就是使用Android Application的开发文章,关于Android 开发的文章本站还很多,希望大家搜索参阅,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# Android  # Application  # 数据存储  # Android动态替换Application实现  # android 获取APP的唯一标识applicationId的实例  # Android Application类的详细介绍  # Android编程之Application设置全局变量及传值用法实例分析  # 一文带你看懂Android Application启动流程是怎样的  # 是一个  # 其他的  # 只会  # 希望能  # 只有一个  # 希望大家  # 谢谢大家  # 很方便  # 创建一个  # 就可以  # 这比  # 象中  # 是一样的  # brush  # java  # public  # MyApplication  # private  # appVersion  # extends 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  如何用腾讯建站主机快速创建免费网站?  如何快速生成ASP一键建站模板并优化安全性?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  如何快速使用云服务器搭建个人网站?  如何快速配置高效服务器建站软件?  如何用PHP快速搭建CMS系统?  音乐网站服务器如何优化API响应速度?  javascript基于原型链的继承及call和apply函数用法分析  Linux系统命令中screen命令详解  Bootstrap整体框架之CSS12栅格系统  如何用wdcp快速搭建高效网站?  HTML 中如何正确使用模板变量为元素的 name 属性赋值  创业网站制作流程,创业网站可靠吗?  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  高端企业智能建站程序:SEO优化与响应式模板定制开发  如何在建站之星网店版论坛获取技术支持?  JS实现鼠标移上去显示图片或微信二维码  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  Python文件流缓冲机制_IO性能解析【教程】  教学论文网站制作软件有哪些,写论文用什么软件 ?  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  IOS倒计时设置UIButton标题title的抖动问题  微信小程序 input输入框控件详解及实例(多种示例)  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  网站制作大概多少钱一个,做一个平台网站大概多少钱?  Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网  Laravel怎么写单元测试_PHPUnit在Laravel项目中的基础测试入门  JavaScript如何实现类型判断_typeof和instanceof有什么区别  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何在局域网内绑定自建网站域名?  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  node.js报错:Cannot find module 'ejs'的解决办法  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  Laravel如何为API编写文档_Laravel API文档生成与维护方法  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  如何在阿里云部署织梦网站?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】  微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  海南网站制作公司有哪些,海口网是哪家的?  canvas 画布在主流浏览器中的尺寸限制详细介绍  PythonWeb开发入门教程_Flask快速构建Web应用