BaseActivity, ActivityA, ActivityB ActivityA와 B가 BaseActivity를 확장하는 세 가지 활동이 있습니다. ActivityA와 B 모두에서 일부 의도를 처리하는 BroadcastReceiver가 있습니다. 현재 동일한 코드에서 처리되는 ActivityA와 B 모두에 동일한 의도가 있습니다. 이것은 DRY 원칙을 위반하기 때문에 ActivityA의 공통 인 텐트와 부모 클래스의 B (BaseActivity)를 처리하려고합니다. 그렇게 할 수 있습니까?부모로부터 BroadcastReceiver 상속 Activity
다음은 코드입니다. ACCOUNT_UPDATE 및 JOURNAL_UPDATE 인 텐트는 클래스에 고유하지만 인 텐트 LOGIN_SUCCESS는 ActivityA 및 B에서 동일합니다.
public abstract class BaseActivity extends RoboActivity implements Handler.Callback {
}
public class ActivityA extends BaseActivity {
private final BroadcastReceiver intentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Constants.INTENTS.ACCOUNT_UPDATE)) {
updateGUI();
}
if (intent.getAction().equals(Constants.INTENTS.LOGIN_SUCCESS)) {
updateGUI();
}
};
@Override
protected void onResume() {
super.onResume();
// Register which actions to listen to
IntentFilter intentFilter = new IntentFilter(Constants.INTENTS.ACCOUNT_UPDATE);
intentFilter.addAction(Constants.INTENTS.LOGIN_SUCCESS);
LocalBroadcastManager.getInstance(getApplicationContext()).registerReceiver(intentReceiver, intentFilter);
}
}
public class ActivityB extends BaseActivity {
private final BroadcastReceiver intentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(Constants.INTENTS.JOURNAL_UPDATE)){
updateGUI();
}
if (intent.getAction().equals(Constants.INTENTS.LOGIN_SUCCESS)) {
updateGUI();
}
}
};
@Override
protected void onResume() {
super.onResume();
// Register which actions to listen to
IntentFilter intentFilter = new IntentFilter(Constants.INTENTS.JOURNAL_UPDATE);
intentFilter.addAction(Constants.INTENTS.LOGIN_SUCCESS);
LocalBroadcastManager.getInstance(getApplicationContext()).registerReceiver(intentReceiver, intentFilter);
}
}
이것이 내 문제와 관련된 이유는 아닙니다. 당신이 그것을 자세히 설명해 주시겠습니까? – v4r
@ v4r - 두 개의 브로드 캐스트 리시버가 동일한 브로드 캐스트를 수신하면 우선 순위를 사용하여 어떤 리시버가 먼저 처리하는지 확인할 수 있습니다. – upenpat
보안 섹션에서는 앱 간 보안에 대해 설명합니다. 필자의 경우 메시지는 동일한 응용 프로그램에서 보내지 만 다른 활동을합니다. – v4r