1

我有一个活动 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 中的函数

4

1 回答 1

5

在基类中创建方法抽象,并在派生类(MainActivity)中实现。

将抽象修饰符添加到您的 BaseActivity:

public abstract class BaseActivity extends Activity

在您的基础活动中创建一个抽象方法

public abstract void test();

然后,在派生活动(主活动)中覆盖它。

@Override
public void test() {
    // TODO Auto-generated method stub      
}

在您的基本活动中,您可以正常调用它。

test();

现在,您将基于当前正在运行的 Activity 对测试方法进行多个实现。每个实现将根据正在运行的活动以不同的方式发挥作用。

于 2013-10-10T14:15:56.717 回答