Android 实现在Activity中操作刷新另外一个Activity数据列表
做android项目中遇到这样一个问题:有两个acticity,一个显示好友列表,另外一个显示会话列表,现在问题是在会话界面增加一个添加好友功能,添加好友后要求实时的刷新好友列表。
想了想,找了两种方式
方法一:通过声明要刷新的activity(FriendActivity)为静态变量,然后在一个activity(SessionActivity)中直接调用刷新方法
在FriendActivity中声明静态变量
- public static FriendActivity instance = null;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- instance = this;
- initViews();
- }
在SessionActivity中直接调用FriendActivity中的刷新好友列表方法即可:
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
- if (requestCode == REQUEST_CODE_NEW_CONTACT && resultCode == RESULT_OK) {
- FriendActivity.instance.reFreshFriendList();
- }
- }
当然,这种方式使用的是静态变量,你需要及时释放内存。
第二种方法:使用广播机制,在SessionActivity添加好友时进行广播,而FriendActivity中通过动态注册广播消息进行receive,当接受到消息时,在FriendActivity中自己进行更新
SessionActivity添加好友时进行广播:
- // 广播通知
- Intent intent = new Intent();
- intent.setAction("action.refreshFriend");
- sendBroadcast(intent);
FriendActivity中通过动态注册广播消息
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- IntentFilter intentFilter = new IntentFilter();
- intentFilter.addAction("action.refreshFriend");
- registerReceiver(mRefreshBroadcastReceiver, intentFilter);
- initViews();
- }
- // broadcast receiver
- private BroadcastReceiver mRefreshBroadcastReceiver = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- if (action.equals("action.refreshFriend"))
- {
- reFreshFrinedList();
- }
- }
- };
这样就很好的实现了在一个Activity中实时刷新另外一个Activity数据列表,这种方式更加的灵活方便。
最后,不要忘记销毁注册
- @Override
- protected void onDestroy() {
- super.onDestroy();
- unregisterReceiver(mRefreshBroadcastReceiver);
- }
Android 实现在Activity中操作刷新另外一个Activity数据列表的更多相关文章
- 【Android Developers Training】 17. 停止和重启一个Activity
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- Android_打开多个Activity,返回到第一个Activity
正文 一.流程截图 二.问题说明 依次从登录到三级界面,然后退出回到登录界面. 三.解决办法 3.1 实现代码 三级界面调用如下代码: Intent intent = new Inte ...
- Android-管理Activity生命周期 -开始一个Activity
很多程序都是从main()方法开始启动的,和其他程序不同,android是在activity生命周期的特定状态的特定回调方法中初始化代码的.activity启动和销毁的时候都用很多回调方法. 这里将要 ...
- 【Android Developers Training】 16. 暂停和恢复一个Activity
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 【原创】Android 从一个Activity跳转到另外一个Activity
Android四大组件activity使用,实现两个activity之间的跳转 基本流程:创建两个activity-将其中一个activity中组件作为事件源-通过组件事件的处理借助intent对象实 ...
- Android组件系列----当前Activity跳转到另一个Activity的详细过程
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...
- 由一个activity跳转到另一个activity
定义一个按钮,当点击的时候跳转到另一个activity的界面 1.新建第二个activity 2.在第二个Java源码处继承第一个activity,导入 3.在source中复写Oncreat方法 4 ...
- asp.net中,我们使用ashx获取数据列表,在前端使用$.ajax()解析
一直在想在asp.net中怎么才能向在java中那样用struts那样做页面请求. 当然asp.net mvc就是类似struts的东西吧,不过还没来得及学习. 今天就用ashx来接收页面请求,并调用 ...
- android 在基类activity中注册BroadcastReceiver,子activity类实现响应
android app 一般都会定义自己的BaseActivity, 如果各子Activity都需要接收广播但对广播的处理又不同时,可以考虑在BaseActivity中注册BroadcastRecei ...
随机推荐
- 禅道导出数据,excel打开为乱码处理
禅道里面导出的数据,用Excel打开是乱码(如图),如何解决? 第一步: 第二步: 第3步: 第4步: 第5步: 选择一个储存位置 最后的结果就是这样了
- 移植SDL2.2问题及解决方法
项目需要ffmpeg+SDL播放视频,所以不得不移植SDL 根据 <移植SDL最新版本>http://blog.csdn.net/flyyang123456789/article/deta ...
- ubuntu 16.04安装HUSTOJ过程
一.背景介绍: 因为工作需要,想在学校搭建一个OJ平台用于程序测试与评价.于是需要搭建oJ,由于之前都是在云端服务器搭建系统,没有在实际服务器平台搭建过,所以遇到不少坑,都靠自己来填补.故而写下此教程 ...
- [持续更新]一些zyys的题的集合
Luogu P1119 灾后重建 Sol:对于每个中转点K,需且仅需以此松弛一次 Key words:Floyd,本质活用 考题 路径数 题目描述: Euphemia到一个N*N的药草田里采药,她从左 ...
- springboot 整合 elasticsearch
1引入jar包 <!--elasticsearch--> <dependency> <groupId>org.springframework.boot</gr ...
- python环境搭建,开发环境
一.从链接http://www.python.org/downloads/ 下载安装包,注意32位和64位安装包区别. https://www.python.org/downloads/windows ...
- Bootstrap-Plugin:警告框(Alert)插件
ylbtech-Bootstrap-Plugin:警告框(Alert)插件 1.返回顶部 1. Bootstrap 警告框(Alert)插件 警告框(Alert)消息大多是用来向终端用户显示诸如警告或 ...
- python3.3.5x64+win2003x64+aliyun oss sdk安装步骤
参考文章:https://help.aliyun.com/document_detail/32026.html?spm=5176.doc31890.6.690.S6ZrRn 1.安装python3.3 ...
- ThreadCachedInt
folly/ThreadCachedInt.h High-performance atomic increment using thread caching. folly/ThreadCachedIn ...
- 206. Reverse Linked List + 92. Reverse Linked List II
▶ 关于单链表翻转的两个问题. ▶ 206. 翻转整个单链表. ● 自己的代码,9 ms,使用了递归. class Solution { public: ListNode* reverseList(L ...