开发过程中,少不鸟组件之间的通信,比如Activity和Fragment,Fragment和Fragment, Activity和Application等等。
下面通过一个列子具体说说接口回调是如何实现组件通信的:
现在有这样一个需求:点击通知栏里该app的通知,点击之后需要跳转到通知详情界面。如果此时界面处于通知列表,在跳转通知详情的时候还需要刷新下该通知列表。集成过第三方推送的小伙伴都知道,点击事件是发生在一个Service里的xx方法里,此时如何让通知列表自己刷新?
先来个刷新的接口:
public interface refreshInterface {
void onRefresh();
}
在通知列表继承该接口:
public class MessageActivity extends Activity implements IntentService.refreshInterface {
public static IntentService.refreshInterface sRefreshInterface;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sRefreshInterface = this;
}
@Override
public void onRefresh() {
mPresenter.onRefreshData();
}
public static void startRefresh() {
if (sRefreshInterface != null) {
sRefreshInterface.onRefresh();
}
}
}
在xxService类的xx点击方法里,调用MessageActivity.startRefresh();
到此为止,接口回调完毕