0
我想知道在使用Android MVP架構時Activity
應該被引用還是不在Presenter
代碼中?演示者是否應該瞭解Android MVP體系結構中的活動?
我迄今發現的示例MVP體系結構沒有引用它,但在我的代碼中,它不是Presenter上的屬性,而是某些方法中的參數。這是否會導致問題?這是否遵循Android MVP?
這裏是一個演示一個代碼示例:
package com.example.example;
import android.net.Uri;
import android.support.v4.app.FragmentActivity;
import android.support.v4.content.FileProvider;
import com.example.example.util.Constants;
import com.example.example.util.ImageFile;
import java.io.IOException;
/**
* Presenter from home screen, (Main), of the app
*/
public class MainPresenter implements MainContract.Presenter {
private final MainContract.View mView;
private final ImageFile mImageFile;
public MainPresenter(MainContract.View mainView, ImageFile imageFile) {
mView = mainView;
mImageFile = imageFile;
}
@Override
public void takePicture(FragmentActivity activity) throws IOException {
mImageFile.create(activity);
Uri photoUri = FileProvider.getUriForFile(
activity,
Constants.FILE_PROVIDER_PATH,
mImageFile.getFile());
mView.openCamera(photoUri);
}
Uri getImageFileUri() {
return mImageFile.getUri();
}
}
難道你不能只是添加一些參數openCamera(),這樣你就不需要演示者內部的活動?你現在做的方式是爲你的演示者創建一個android依賴項,這是你想避免的 – lelloman