偶然遇到一个需求、有几个主界面需要获取消息的未读数量

由于不是所有类都调用、调用的次数又比较多,整的不上不下的

1、对于方法调用次数比较少的 推荐广播

广播的方法很方便、但是一堆的消息接收、发送很模式化

2、对于较多的方法调用 个人建议直接写共用类中

此方法通常用于数据处理、对接复杂界面处理颇感无力

3、结合父类、根据实际情况调用

今天介绍的就是通过接口调用 选择获取消息数量方法

首先介绍下主逻辑、即在子类调用父类方法、并将子类handler传入父类、进行数据返回

子类主要代码:

protected void onResume() {

// TODO Auto-generated method stub

if (app.jkNeedReadNum)

getNoReadNum(app.userid, handler);

super.onResume();

}

private Handler handler = new Handler() {

/*

* (non-Javadoc)

*

* @see android.os.Handler#handleMessage(android.os.Message)

*/

@Override

public void handleMessage(Message msg) {

// TODO Auto-generated method stub

switch (msg.what) {

case GET_NUM_SUCCESS:

String count = (String) msg.obj;

badge1.setText(count);

badge1.show();

break;

case GET_NUM_CANCLE:

badge1.hide();

break;

}

}

};

父类主要代码:

// 获取未阅读数量

public void getNoReadNum(long user_id, Handler handler) {

RequestParams params = new RequestParams();

params.put("user_id", user_id + "");

HttpConnection.mesNoreadSum(params, new NumAsyncHttpResponseHandler(

handler));

}

class NumAsyncHttpResponseHandler extends AsyncHttpResponseHandler {

Handler handler;

public NumAsyncHttpResponseHandler(Handler handler) {

this.handler = handler;

}

@Override

public void onStart() {

// TODO Auto-generated method stub

app.jkNeedReadNum = false;

super.onStart();

}

/*

* (non-Javadoc)

*

* @see com.emotte.result.AsyncHttpResponseHandler#onFinish()

*/

@Override

public void onFinish() {

// TODO Auto-generated method stub

app.jkNeedReadNum = true;

super.onFinish();

}

/*

* (non-Javadoc)

*

* @see

* com.emotte.result.AsyncHttpResponseHandler#onSuccess(java.lang.String

* )

*/

@Override

public void onSuccess(String content) {

// TODO Auto-generated method stub

app.jkNeedReadNum = true;

try {

// JSONObject obj = new JSONObject(content);

// String result = obj.optString("success");

// if (result != null || "0".equals(result)) {

// String count = obj.optString("count");

//

String count = "22";

System.out.println(count);

if (count != null && Integer.parseInt(count) > 0) {

Message m = handler.obtainMessage();

m.what = GET_NUM_SUCCESS;

m.obj = count;

handler.sendMessage(m);

} else {

Message m = handler.obtainMessage();

m.what = GET_NUM_CANCLE;

handler.sendMessage(m);

}

// }

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

super.onSuccess(content);

}

/*

* (non-Javadoc)

*

* @see

* com.emotte.result.AsyncHttpResponseHandler#onFailure(java.lang.Throwable

* , java.lang.String)

*/

@Override

public void onFailure(Throwable error, String content) {

// TODO Auto-generated method stub

app.jkNeedReadNum = true;

super.onFailure(error, content);

}

};

为了不重复调用、此处定义了全局变量用于判断。

DEMO下载地址:

http://www.kuaipan.cn/file/id_28743136620627165.htm?source=1

android继承父类的界面,Android调用父类方法,进行子界面刷新相关推荐

  1. cocos2dx在Android studio运行 以及在 Android 平台上使用 JavaScript 直接调用 Java 方法

    cocos2dx在Android studio运行 以及在 Android 平台上使用 JavaScript 直接调用 Java 方法 cocos2dx在Android studio运行 使用Andr ...

  2. android 子页面如何调用父页面函数,Android 调用父类方法,进行子界面刷新

    偶然遇到一个需求.有几个主界面需要获取消息的未读数量 由于不是所有类都调用.调用的次数又比较多,整的不上不下的 1.对于方法调用次数比较少的  推荐广播 广播的方法很方便.但是一堆的消息接收.发送很模 ...

  3. 第五章 类的继承和super的使用调用父类构造方法

    类的继承 mammals dogs cats humans lions tigers leopards 人是哺乳动物,因为人都具有哺乳动物的所有特征,但哺乳动物却不一定是人.哺乳动物类和人类之间就存在 ...

  4. c++继承父类的子类,如何调用父类的同名函数?

    https://blog.csdn.net/qq_26399665/article/details/52080215 子类调用父类的同名函数: 子类和父类返回值参数相同,函数名相同,有virtual关 ...

  5. python子类初始化父类_Python实现子类调用父类的初始化实例

    前言 python中进行面向对象编程,当在子类的实例中调用父类的属性时,由于子类的__init__方法重写了父类的__init__方法,如果在子类中这些属性未经过初始化,使用时就会出错. 例如以下的代 ...

  6. 子类调用父类构造方法 java_JAVA子类调用父类构造方法

    父类的构造方法不能被子类继承.以下语句中MyException类继承了java.lang.Exception类. public class MyException extends Exception{ ...

  7. cocos2d js调用java_【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法...

    在cocos2d-js 3.0beta中加入了一个新特性,在android平台上我们可以通过反射直接在js中调用java的静态方法.它的使用方法很简单: var o = jsb.reflection. ...

  8. 【cocos2d-js官方文档】二十四、如何在android平台上使用js直接调用Java方法

    在cocos2d-js 3.0beta中加入了一个新特性,在Android平台上我们可以通过反射直接在js中调用Java的静态方法.它的使用方法很简单: var o = jsb.reflection. ...

  9. android .recycle(),Android系统中Bitmap是否有调用recycle方法的必要性

    Bitmap有一个recycle方法,意思很简单,回收Bitmap的空间.但是我们知道java有自己的垃圾回收机制,所以为什么BitaMap还需要这样一个专门的回收方法呢? 无需调用bitmap的理由 ...

最新文章

  1. java源码 - ReentrantReadWriteLock介绍
  2. linux环境变量 LD_LIBRARY_PATH 使用
  3. iOS - 数据的归档和反归档
  4. dc综合与pt静态时序分析(中文)_小三电系统(PDU+DC+OBC)的技术研究
  5. c++语言自定义操作符,C++语言复习笔记二
  6. 容器学习 之 容器的组件(三)
  7. sqlsever2008数据库的备份与还原
  8. global.asax不执行原因
  9. java描述常用的集合类_Java常用的集合类
  10. Java之一致性hash算法原理及实现
  11. CUDA计算向量内积的程序(源自CUDA范例编程)
  12. 【SimpleITK】分割label覆盖到原图上显示
  13. 最新 Axure 激活码
  14. mp4 avc格式_sps_pps
  15. win10系统个人服务器配置,个人电脑win10配置服务器吗
  16. pip 使用国内阿里云软件源
  17. U盘系统、格式化等问题的解决办法
  18. linux计算机连接PEAP企业网的wi-fi
  19. python做相册_动感网页相册 python编写简单文件夹内图片浏览工具
  20. 小程序转发二维码携带参数不生效的问题

热门文章

  1. java 存储png文件_vue图片上传及java存储图片(亲测可用)
  2. SQL Server大量数据秒级插入/新增/删除
  3. AtCoderGC038B - Sorting a Segment 数据结构 + RMQ
  4. php 删除上传文件,php实现文件上传、下载和删除的方法
  5. mysql连表查询on条件_mysql 外连接的时候,条件在on后面和条件在where后面的区别...
  6. oracle转sparksql工具化,不使用Sqoop流程,利用CacheManager直接完成SparkSQL数据流直接回写Oracle...
  7. c++ 函数指针_进化论——从函数指针到被结构封装的函数指针及参数的应用举例...
  8. 二分法求近似根c语言程序,求一C++风格程序,用二分法求f(x)=0的根
  9. 如何在金山毒霸软件里安装腾讯视频
  10. 原始servlet+hibernate+struts2,从前台到后台的整个过程