做android项目中遇到这样一个问题:有两个acticity,一个显示好友列表,另外一个显示会话列表,现在问题是在会话界面增加一个添加好友功能,添加好友后要求实时的刷新好友列表。

想了想,找了两种方式

方法一:通过声明要刷新的activity(FriendActivity)为静态变量,然后在一个activity(SessionActivity)中直接调用刷新方法

在FriendActivity中声明静态变量

  1. public static FriendActivity instance = null;
  2. @Override
  3. protected void onCreate(Bundle savedInstanceState) {
  4. super.onCreate(savedInstanceState);
  5. setContentView(R.layout.activity_main);
  6. instance = this;
  7. initViews();
  8. }

在SessionActivity中直接调用FriendActivity中的刷新好友列表方法即可:

  1. @Override
  2. protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
  3. if (requestCode == REQUEST_CODE_NEW_CONTACT && resultCode == RESULT_OK) {
  4. FriendActivity.instance.reFreshFriendList();
  5. }
  6. }

当然,这种方式使用的是静态变量,你需要及时释放内存。

第二种方法:使用广播机制,在SessionActivity添加好友时进行广播,而FriendActivity中通过动态注册广播消息进行receive,当接受到消息时,在FriendActivity中自己进行更新

SessionActivity添加好友时进行广播:

  1. // 广播通知
  2. Intent intent = new Intent();
  3. intent.setAction("action.refreshFriend");
  4. sendBroadcast(intent);

FriendActivity中通过动态注册广播消息

  1. @Override
  2. protected void onCreate(Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. setContentView(R.layout.activity_main);
  5. IntentFilter intentFilter = new IntentFilter();
  6. intentFilter.addAction("action.refreshFriend");
  7. registerReceiver(mRefreshBroadcastReceiver, intentFilter);
  8. initViews();
  9. }
  10. // broadcast receiver
  11. private BroadcastReceiver mRefreshBroadcastReceiver = new BroadcastReceiver() {
  12. @Override
  13. public void onReceive(Context context, Intent intent) {
  14. String action = intent.getAction();
  15. if (action.equals("action.refreshFriend"))
  16. {
  17. reFreshFrinedList();
  18. }
  19. }
  20. };

这样就很好的实现了在一个Activity中实时刷新另外一个Activity数据列表,这种方式更加的灵活方便。

最后,不要忘记销毁注册

  1. @Override
  2. protected void onDestroy() {
  3. super.onDestroy();
  4. unregisterReceiver(mRefreshBroadcastReceiver);
  5. }

Android 实现在Activity中操作刷新另外一个Activity数据列表的更多相关文章

  1. 【Android Developers Training】 17. 停止和重启一个Activity

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  2. Android_打开多个Activity,返回到第一个Activity

    正文 一.流程截图 二.问题说明 依次从登录到三级界面,然后退出回到登录界面. 三.解决办法 3.1 实现代码 三级界面调用如下代码:         Intent intent = new Inte ...

  3. Android-管理Activity生命周期 -开始一个Activity

    很多程序都是从main()方法开始启动的,和其他程序不同,android是在activity生命周期的特定状态的特定回调方法中初始化代码的.activity启动和销毁的时候都用很多回调方法. 这里将要 ...

  4. 【Android Developers Training】 16. 暂停和恢复一个Activity

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  5. 【原创】Android 从一个Activity跳转到另外一个Activity

    Android四大组件activity使用,实现两个activity之间的跳转 基本流程:创建两个activity-将其中一个activity中组件作为事件源-通过组件事件的处理借助intent对象实 ...

  6. Android组件系列----当前Activity跳转到另一个Activity的详细过程

    [声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/3 ...

  7. 由一个activity跳转到另一个activity

    定义一个按钮,当点击的时候跳转到另一个activity的界面 1.新建第二个activity 2.在第二个Java源码处继承第一个activity,导入 3.在source中复写Oncreat方法 4 ...

  8. asp.net中,我们使用ashx获取数据列表,在前端使用$.ajax()解析

    一直在想在asp.net中怎么才能向在java中那样用struts那样做页面请求. 当然asp.net mvc就是类似struts的东西吧,不过还没来得及学习. 今天就用ashx来接收页面请求,并调用 ...

  9. android 在基类activity中注册BroadcastReceiver,子activity类实现响应

    android app 一般都会定义自己的BaseActivity, 如果各子Activity都需要接收广播但对广播的处理又不同时,可以考虑在BaseActivity中注册BroadcastRecei ...

随机推荐

  1. [Qt] QLineEdit 仿QQ签名框

    今天鼓捣了半天,终于实现了自定义Qt中的QlineEdit控件的大致效果. 这个问题对于新手而言,主要有以下几个难点: 1.继承QLineEdit控件 2.QSS设置QLineEdit的相关样式,可以 ...

  2. Documentation/kobject.txt翻译--sysfs

    你从未想过的关于kobjects,ksets和ktypes的一切:作者:Greg Kroah-Hartman <gregkh@linuxfoundation.org>:上次更新时间:200 ...

  3. C#.NET通过Socket实现平行主机之间网络通讯(含图片传输的Demo演示)

    在程序设计中,涉及数据存储和数据交换的时候,不管是B/S还是C/S模式,都有这样一个概念:数据库服务器.这要求一台性能和配置都比较好的主机作为服务器,以满足数目众多的客户端进行频繁访问.但是对于一些数 ...

  4. 解决Apache下生成静态页面乱码的问题

    我的空间存放在阿里云,服务器默认Apache编码设置为utf-8,而新的网站珠宝招聘网http://hr.izuans.com 采用GB2312编码,其他程序文件都OK,就是生成静态新闻页和其他单页面 ...

  5. 一个filebeat实例 设置多topic设置

    方法1:一实例多topic: https://discuss.elastic.co/t/filebeat-5-0-output-to-kafka-multiple-topics/67934 The d ...

  6. SQL相关简单游标

    BEGIN TRY Create Table #Temp_Table_Record_Stat ( .... ) DECLARE table_Cursor CURSOR FOR SELECT objec ...

  7. WCF揭秘学习笔记(2):数据表示

    背景知识 WCF提供了一种语言为软件通信建模,称作服务模型.使用更底层的编程架构提供的类可以从这种语言建立的模型中生成可用的通信软件. 在服务模型使用的语言中,负责通信的软件部分称为服务(servic ...

  8. Jython:java调用python文件之第三方包路径问题

    本文转载自:http://blog.csdn.net/ztf312/article/details/51338060 本方法解决python代码的可移植性,不需要在新机器上配置python环境,只通过 ...

  9. Java里的集合--主要区别

    Collection 集合接口,指的是 java.util.Collection接口,是 Set.List 和 Queue 接口的超类接口. List: List是关注事物索引的列表. List中可以 ...

  10. C++ 实例化对象 p->printX()

    一.从栈实例化对象 我们首先定义一个类,类的名字叫TV,里面包括两个成员变量,两个成员函数. class TV // 定义一个电视的类TV { public: ]; // 定义类的属性,一个数组 in ...