我有一项活动BaseActivity。 BaseActivity的广播设置为
private final BroadcastReceiver mReceivedReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
mDialog.dismiss();
if (Constants.ACTION_REQUEST_QUOTE.equals(action))
{
requestQuoteViewer();
mDialog.dismiss();
}
if (Constants.ACTION_PUSH.equals(action))
{
// CALL A FUNCTION IN MYACTIVITY
}
}
};
现在我有很多活动,例如MyActivity扩展了BaseActivity 在广播接收上,我想调用MyActivity中定义的函数(主要是UI更改)。如何从BaseActivity中调用MyActivity中的函数
答案 0 :(得分:4)
在基类中创建方法抽象,并在派生类(MainActivity)中实现它。
为您的BaseActivity添加抽象修饰符:
public abstract class BaseActivity extends Activity
在基本活动中创建一个抽象方法
public abstract void test();
然后,在派生活动(主要活动)中覆盖它。
@Override
public void test() {
// TODO Auto-generated method stub
}
在您的基本活动中,您可以正常调用它。
test();
现在,您将有多个基于测试方法的实现 现在正在运行的Activity。每个实现都将起作用 与运行活动不同。