在Android MVP架构中,正确处理onActivityResult方法的步骤如下:
BasePresenter
的基础Presenter类,并在其中定义一个名为onActivityResult
的方法。public abstract class BasePresenter {
protected V view;
public void attachView(V view) {
this.view = view;
}
public void detachView() {
view = null;
}
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// 在具体的Presenter中实现该方法
}
}
BasePresenter
,并实现onActivityResult
方法。public class MyPresenter extends BasePresenter {
// 其他Presenter方法...
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
// 处理返回数据逻辑...
view.showResult(result);
}
}
}
onActivityResult
方法。public class MyActivity extends BaseActivity implements MyView {
private MyPresenter presenter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
presenter = new MyPresenter();
presenter.attachView(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
presenter.onActivityResult(requestCode, resultCode, data);
}
// 其他Activity方法...
@Override
public void showResult(String result) {
// 显示结果逻辑...
}
}
通过以上步骤,我们可以在Presenter中正确处理onActivityResult方法的回调,并在Activity或Fragment中显示结果。这种方式使得业务逻辑与UI的分离更加明确,方便测试和维护。