Android 架构蓝图 [todo-mvp-dagger] @ActivityScoped, @FragmentScoped

标签 android annotations dagger-2 dagger

查看https://github.com/googlesamples/android-architecture/blob/todo-mvp-dagger/todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/tasks/TasksFragment.java :

@ActivityScoped
public class TasksFragment extends DaggerFragment implements TasksContract.View {

https://github.com/googlesamples/android-architecture/blob/todo-mvp-dagger/todoapp/app/src/main/java/com/example/android/architecture/blueprints/todoapp/tasks/TasksModule.java :

@Module
public abstract class TasksModule {
    @FragmentScoped
    @ContributesAndroidInjector
    abstract TasksFragment tasksFragment();
  1. 为什么@ActivityScoped 直接应用于TaskFragment?不应应用于 TaskModule 中的 taskFragment 方法?
  2. 为什么在同一个 fragment 中同时使用@ActivityScoped 和@FragmentScoped?

提前致谢!

最佳答案

因为 fragment 作用域需要知道它是否被插入到 Activity 作用域中,所以用于作用域的代码生成是为了减少内存占用。这样 activity 和 fragment 就可以共享内存了。

关于Android 架构蓝图 [todo-mvp-dagger] @ActivityScoped, @FragmentScoped,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55272551/

相关文章:

javascript - jQuery 弹出窗口在手机上调整大小

android - 如何自定义 Creative SDK 图像编辑器中可用的裁剪选项

java - String[] 的 Spring @Value 默认值

java - 无法解析导入 javax.annotation.Resource

android - Dagger2 自定义范围 : How do custom-scopes (@ActivityScope) actually work?

android - 如何从 AbstractSavedStateViewModelFactory 动态设置包

android - 如何使Firebase用户在Google登录功能之外 flutter 朔迷离?

java - 使用 OkHttp 在 PHP 服务器上上传文件,出错?

java - 警告 : No processor claimed any of these annotations: javax. 注释。已生成

android - Dagger2- 切换不同风格的依赖关系 : Android Studio