我现在有个activity是全局运行的(简称A),还有个MainActivity(简称B),现在写了一个类(简称C),C中有个方法,A和B都要用到(这个实现了),我想实现B用到这个方法的时候会做一些额外的事。如何是用呢
class CustomMessageHandler extends AVIMMessageHandler {
public static String ME="msg";
private CustomMessageHandler customMessageHandler;
private Context context=null;
public CustomMessageHandler(Context context){
this.context=context;
}
/*private void UpdataUI() {
// TODO Auto-generated method stub
if(this.context!=mainActivity){
}
new AlertDialog.Builder(this.context).setTitle("you are invited!").setIcon(
android.R.drawable.ic_dialog_info).setView(
new EditText(this.context)).setPositiveButton("yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.setNegativeButton("no", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
}).show();
}*/
@Override
public void onMessage(AVIMMessage message, AVIMConversation conversation, AVIMClient client) {
// 新消息到来了。在这里增加你自己的处理代码。
String msgContent = message.getContent();
ME=msgContent;
UpdataUI();
System.out.println(conversation.getConversationId() + " 收到一条新消息:" + msgContent);
// Logger.d(conversation.getConversationId() + " 收到一条新消息:" + msgContent);
}
}
其中注释掉的代码,是我想让B调用是使用,而A不使用 大家有什么解决办法吗
给类 CustomMessageHandler 增加一个构造函数,不同的地方调用时传入不同的数值,这样就可以区分不同 Activity 的调用。
public class A {
class A_INNER extends C{
@Override
public void UpdateUI() {//覆盖这个方法,里面空着就行。这样就不会执行原来的C里面的方法了
}
}
}
public class B {
class B_INNER extends C{
}
}
public class C {
public void UpdateUI(){
System.out.println("c");
}
public void onMessage(){
UpdateUI();
}
}
给方法加个参数呗。。。。。。
............................. 回调如何 ?
在构造函数中加个标志参数 或者 通过context判断 context==包名