小编Moh*_*him的帖子

Worker中的同步或异步Rxjava(来自WorkManager组件)什么是正确的选择?

我是新架构组件WorkManager的新手,我通过Retrofit和RxJava进行API调用.

我的用例是从后端获取新帖子,然后显示通知,并更新小部件.

所以来自Worker类的doWork()方法中的代码可能看起来像这样.

@NonNull
  @Override
  public Result doWork() {
    AppDependencies appDependencies = new AppDependencies((Application) getApplicationContext());
    Repository repository = appDependencies.getRepository();

    repository.getNewPosts()
        .flatMap(newPosts -> repository.inserPosts(newPosts).toObservable())
        .doOnError(Timber::e)
        //if success - > return  Result.SUCCESS,
        // -> show notification
        // -> update widget
        // error-> return Result.Failure
        .dontKnowWhatBestNextThing; //blocking or subscribing

    //if we reached here then Retry
    return Result.RETRY;
  }
Run Code Online (Sandbox Code Playgroud)

我的问题是在Worker类中使用RxJava代码的正确方法是什么,因为doWork()方法有一个返回值,所以我必须使Rx代码同步.

如果我使用非阻塞Rx方法,我怎样才能返回值(成功 - 失败 - 重试)

android rx-java2 android-architecture-components android-jetpack android-workmanager

18
推荐指数
2
解决办法
3193
查看次数

在 android studio 中添加对 gradle 的依赖但根本不使用它会影响 apk 大小吗?

在一个大项目中,虽然以前的开发人员已经工作过,但您可以找到gradle根本没有任何用途的依赖项。

这些依赖性会影响apk大小吗?以及依赖关系如何影响apk大小,如果您只使用库中的一种方法,这是否意味着附加到您的apk.

android libraries apk android-gradle-plugin

5
推荐指数
1
解决办法
1279
查看次数

Hilt ClassCastException:无法将 ViewComponentManager$FragmentContextWrapper 转换为 AppCompatActivity

我有这个代码,当单击 Adapter 中的 viewHolder 项目时,我会在其中显示 Dialog Fragment

 SpecialRequestNotFoundBottomSheetDialog {
            requestItem?.specialRequestEntity?.id?.let { id -> onCancelReasonsSelected(id, it) }
        }.show(itemView.context as AppCompatActivity).supportFragmentManager)
Run Code Online (Sandbox Code Playgroud)

最近我正在迁移到 Hilt 并且我得到了类转换异常,看起来像 Hilt 包装了上下文,我无法让父Activity获得所需的FragmentManager来显示 Dialog

android kotlin dagger-2 dagger-hilt

5
推荐指数
2
解决办法
1576
查看次数

提供并注入两个具有不同实现的实例 - Dagger 2

我有一种情况,我需要两个改造服务,每个服务都有其业务实现。

    @Provides
    @Singleton
    @Named("defaultMulhimService")
    MulhimService provideMulhimService() {
        return MulhimService.Creator.newMulhimService();
    }

    @Provides
    @Singleton
    @Named("MulhimServiceWithCache")
    MulhimService providesMulhimServiceWithCache(){
        return MulhimService.Creator.newMulhimServiceWithCache(mApplication);
    }
Run Code Online (Sandbox Code Playgroud)

我已经看过这个答案,它建议使用 @Named 注释来区分模块中的多个实例,但我不知道如何注入它们。

android dependency-injection dagger-2

1
推荐指数
1
解决办法
1765
查看次数

使用递归方法反转并打印数组

下面的方法工作正常,但我找不到使用相同方法打印反转数组的方法.我尝试了 - 每个循环但它打印三个数组而不仅仅是一个.例如,如果输入:

大小5,开始= 1,结束= 5,arr [] = {1,2,3,4,5}

输出:

543215432154321

应该是正确的输出

54321

这是代码:

static void reverse(int[] arr, int start, int end) {
    if (start < end) {
        int temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;
        reverse(arr, start + 1, end - 1);       
    }   

    for (int pr : arr) {
        System.out.print(pr);
    }
}
Run Code Online (Sandbox Code Playgroud)

java arrays recursion reverse

0
推荐指数
1
解决办法
3594
查看次数