Android: 创建 bundle 的新实例并在 mvp 中传递给 dagger 中的 intent
Android: Create new instance of bundle and pass to intent in dagger in mvp
我想在我的项目中使用 MVP 和 dagger。
鉴于我有这个方法,在这个方法中我将把一些对象传递给演示者:
@Override
public void onLogin(User user, Cookie cookie, UUID sessionId, List<Permission> permissions) {
super.onLogin(user, cookie, sessionId, permissions);
presenter.onLogin(user, cookie, sessionId, permissions);
}
这是我的主持人:
public class Presenter implements ILogin.LoginPresenter{
private Context context;
@Inject
public Presenter(Context context) {
this.context = context;
}
@Override
public void onLogin(User user, Cookie cookie, UUID sessionId, List<Permission> permissions) {
Intent intent = new Intent(context,MainActivity.class);///?
Bundle bundle = new Bundle();///?
bundle.putString("USER", user.getUserName());
intent.putExtras(bundle);
context.startActivity(intent);
}
模块中没有任何内容:
@Module
public class LoginModule {
}
我的问题:
当我使用 dagger 时,我在演示者中创建新对象(Intent
和 Bundle
)是真的吗?
如何在我的场景中使用匕首?这意味着在模块 class?
中创建新的 intent 和 bundle 实例
MVP 模式的要点是将业务逻辑与其视图分开。在您的 Presenter 中不要有任何 android 框架相关代码是一个常见的好习惯(这里您的 Presenter 依赖于 android 中的 Context
、Intent
和 Bundle
框架)。
在您的情况下,您不应在演示者中创建 Intent
和 Bundle
,因为它属于您的视图 (MainActivity
)。
您的 onLogin
函数可能如下所示:
@Override
public void onLogin(User user, Cookie cookie, UUID sessionId, List<Permission> permissions) {
// whatever is your business logic
view.showMainActivity(user);
}
其中 view
是由您的 MainActivity
实现并注入到您的演示者中的接口。
我想在我的项目中使用 MVP 和 dagger。 鉴于我有这个方法,在这个方法中我将把一些对象传递给演示者:
@Override
public void onLogin(User user, Cookie cookie, UUID sessionId, List<Permission> permissions) {
super.onLogin(user, cookie, sessionId, permissions);
presenter.onLogin(user, cookie, sessionId, permissions);
}
这是我的主持人:
public class Presenter implements ILogin.LoginPresenter{
private Context context;
@Inject
public Presenter(Context context) {
this.context = context;
}
@Override
public void onLogin(User user, Cookie cookie, UUID sessionId, List<Permission> permissions) {
Intent intent = new Intent(context,MainActivity.class);///?
Bundle bundle = new Bundle();///?
bundle.putString("USER", user.getUserName());
intent.putExtras(bundle);
context.startActivity(intent);
}
模块中没有任何内容:
@Module
public class LoginModule {
}
我的问题:
当我使用 dagger 时,我在演示者中创建新对象(
Intent
和Bundle
)是真的吗?如何在我的场景中使用匕首?这意味着在模块 class?
中创建新的 intent 和 bundle 实例
MVP 模式的要点是将业务逻辑与其视图分开。在您的 Presenter 中不要有任何 android 框架相关代码是一个常见的好习惯(这里您的 Presenter 依赖于 android 中的 Context
、Intent
和 Bundle
框架)。
在您的情况下,您不应在演示者中创建 Intent
和 Bundle
,因为它属于您的视图 (MainActivity
)。
您的 onLogin
函数可能如下所示:
@Override
public void onLogin(User user, Cookie cookie, UUID sessionId, List<Permission> permissions) {
// whatever is your business logic
view.showMainActivity(user);
}
其中 view
是由您的 MainActivity
实现并注入到您的演示者中的接口。