今天整理一下在项目中怎么去控制我们的数据刷新。

不需要广播、事件总线,就能全局性的控制想要刷新的界面。
先来看一下效果图:
近期在写项目的过程中,感觉很多界面中的状态,如果在详情页或者其他地方改变之后,需要进行同步的话,控制起来还是比较麻烦的。
就比如一个列表界面,我在详情页进行操作之后,回来之后列表状态需要改变,如果我没操作,回来之后是不需要改变,一般写法要么是考虑 startActivityForResult(), 要么就是每次界面重现(onResume方法)的时候,去操作当前列表,startActivityForResult 这个还可以接受,每次界面重现都去刷新当前列表,这个做法就有点不明智了。 但是 用 startActivityForResult 有时候也不是很方便,比如我界面层次多了呢,到第五层去刷新第一层界面。这个时候就要考虑其他方式了。
这里介绍的控制界面小技巧,就是 定义一个全局的静态类,用来存放各个界面的各种判断条件,然后利用生命周期的 OnResume 方法去进行条件判断。
下面先贴出来 Demo 中的这个静态类的代码:
public class MemoryUtil {
/**
* 是否刷新第一个界面
*/
public boolean isRefreshMain = false;
/**
* 是否刷新第二个界面
*/
public boolean isRefreshSecond = false;
/**
* 是否刷新第三个界面
*/
public boolean isRefreshThree = false;
private static MemoryUtil mMS;
public static MemoryUtil MS = MemoryUtil.getIntance();
private static MemoryUtil getIntance() {
if (mMS == null) mMS = new MemoryUtil();
return mMS;
}
/**
* 清理保存的内存
*/
public static void clearMomery() {
mMS = null;
}
}
贴出来这几个界面的简单代码:
MainActivity :
private TextView tv_1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
tv_1 = (TextView) findViewById(R.id.tv_1);
}
public void onClick(View view) {
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
}
@Override
protected void onResume() {
super.onResume();
if (MemoryUtil.MS.isRefreshMain) {
MemoryUtil.MS.isRefreshMain = false;
Toast.makeText(this, "Main is Refresh", Toast.LENGTH_SHORT).show();
}
}
SecondActivity:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
findViewById(R.id.tv_2).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(SecondActivity.this, ThreeActivity.class);
startActivity(intent);
}
});
}
public void onClick(View view) {
MemoryUtil.MS.isRefreshMain = true;
}
@Override
protected void onResume() {
super.onResume();
if (MemoryUtil.MS.isRefreshSecond) {
MemoryUtil.MS.isRefreshSecond = false;
Toast.makeText(this, "Second is Refresh", Toast.LENGTH_SHORT).show();
}
}
ThreeActivity:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_three);
findViewById(R.id.tv_1).setOnClickListener(this);
findViewById(R.id.tv_2).setOnClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.tv_1:
MemoryUtil.MS.isRefreshMain = true;
break;
case R.id.tv_2:
MemoryUtil.MS.isRefreshSecond = true;
break;
}
}
这种写法用于控制全局判断条件还是挺方便的,不过有些利用到缓存数据,或者传递参数的地方,这个还是有一定的限制。其他的也是要视情况而定了。
注意要在退出应用的时候,调用 clearMomery()来释放内存。
各位也可以根据自己的项目需要或者自己的想法去进行调整,这里只是做一个简单的整理介绍。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android界面刷新
# Android数据刷新
# Android刷新
# Android 自定义可拖拽View界面渲染刷新后不会自动回到起始位置
# Android 实现界面刷新的几种方法
# Android中刷新界面的二种方法
# Android界面刷新的方法分享
# Android 模仿iPhone列表数据View刷新动画详解
# android中ListView数据刷新时的同步方法
# 自己的
# 不需要
# 贴出
# 详情页
# 我在
# 还可以
# 第一个
# 就能
# 其他的
# 有一定
# 要在
# 我没
# 第二个
# 做一个
# 这个时候
# 看一下
# 第三个
# 这几个
# 定了
# 可以根据
相关文章:
宝塔面板创建网站无法访问?如何快速排查修复?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
网站制作公司排行榜,抖音怎样做个人官方网站
海南网站制作公司有哪些,海口网是哪家的?
临沂网站制作企业,临沂第三中学官方网站?
建站之星如何助力网站排名飙升?揭秘高效技巧
昆明网站制作哪家好,昆明公租房申请网上登录入口?
专业商城网站制作公司有哪些,pi商城官网是哪个?
如何通过万网虚拟主机快速搭建网站?
制作网站的模板软件,网站怎么建设?
建站之星客服服务时间及联系方式如何?
C#怎么创建控制台应用 C# Console App项目创建方法
表情包在线制作网站免费,表情包怎么弄?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
建站之星后台密码遗忘或太弱?如何重置与强化?
如何通过多用户协作模板快速搭建高效企业网站?
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
如何通过wdcp面板快速创建网站?
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
建站之星如何实现五合一智能建站与营销推广?
宿州网站制作公司兴策,安徽省低保查询网站?
高防服务器租用首荐平台,企业级优惠套餐快速部署
制作营销网站公司,淘特是干什么用的?
C#怎么使用委托和事件 C# delegate与event编程方法
C#如何在一个XML文件中查找并替换文本内容
济南企业网站制作公司,济南社保单位网上缴费步骤?
如何获取开源自助建站系统免费下载链接?
如何用西部建站助手快速创建专业网站?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
建站之星收费标准详解:套餐费用及年费价格表一览
建站主机与服务器功能差异如何区分?
如何在云虚拟主机上快速搭建个人网站?
青浦网站制作公司有哪些,苹果官网发货地是哪里?
如何打造高效商业网站?建站目的决定转化率
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
如何安全更换建站之星模板并保留数据?
建站之星logo尺寸如何设置最合适?
如何在万网自助建站中设置域名及备案?
Java解压缩zip - 解压缩多个文件或文件夹实例
建站之星备案流程有哪些注意事项?
义乌企业网站制作公司,请问义乌比较好的批发小商品的网站是什么?
制作销售网站教学视频,销售网站有哪些?
专业公司网站制作公司,用什么语言做企业网站比较好?
沈阳制作网站公司排名,沈阳装饰协会官方网站?
如何选择PHP开源工具快速搭建网站?
北京网站制作网页,网站升级改版需要多久?
制作网站的公司有哪些,做一个公司网站要多少钱?
想学网站制作怎么学,建立一个网站要花费多少?
专业网站设计制作公司,如何制作一个企业网站,建设网站的基本步骤有哪些?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
*请认真填写需求信息,我们会在24小时内与您取得联系。