我编写了我的第一个Android应用程序,现在正在研究Dmitry Kalita项目 - https://github.com/rusmonster/signin(为e-legion android-develop课程编写的项目)。
项目结构如下所示: MainActivity.java:
public class SignInActivity extends Activity implements SignInModel.Observer {
private SignInModel mSignInModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
mSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
mSignInModel.signIn(userName, password);
}
});
//Восстановление SignInModel
mSignInModel.registerObserver(this);
}
@Override
protected void onDestroy() {
mSignInModel.unregisterObserver(this);
if (isFinishing()) {
mSignInModel.stopSignIn();
}
}
@Override
public void onSignInStarted(final SignInModel signInModel) {
}
@Override
public void onSignInSucceeded(final SignInModel signInModel) {
}
@Override
public void onSignInFailed(final SignInModel signInModel) {
}
}
SignInModel.java
public class SignInModel {
private final SignInObservable mObservable = new SignInObservable();
public void signIn(final String userName, final String password) {
if (mIsWorking) {
return;
}
mObservable.notifyStarted();
}
public void registerObserver(final Observer observer) {
mObservable.registerObserver(observer);
if (mIsWorking) {
observer.onSignInStarted(this);
}
}
public void unregisterObserver(final Observer observer) {
mObservable.unregisterObserver(observer);
}
private class SignInObservable extends Observable<Observer> {
public void notifyStarted() {
for (final Observer observer : mObservers) {
observer.onSignInStarted(SignInModel.this);
}
}
public void notifySucceeded() {
for (final Observer observer : mObservers) {
observer.onSignInSucceeded(SignInModel.this);
}
}
public void notifyFailed() {
for (final Observer observer : mObservers) {
observer.onSignInFailed(SignInModel.this);
}
}
}
}
但是在我的项目中,我有很多网络请求(例如,在一个活动中加载了照片和文字信息),而且我不知道如何在这种架构下做到这一点。
请帮我选择正确的方式。
P.S:我知道这不是最好的方法,但是很简单,如果你知道更好的方法(不太难),那么请告诉我。