问题描述
- 关于Android如何在不同Activity调用一个类的方法不同操作?
- 我现在有个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==包名
时间: 2024-09-20 00:22:18