小编use*_*889的帖子

Observable vs Flowable rxJava2

我一直在寻找新的rx java 2,我不太确定我理解了这个想法backpressure......

我知道我们有Observable没有backpressure支持,Flowable而且有它.

因此,基于例如,可以说我有flowableinterval:

        Flowable.interval(1, TimeUnit.MILLISECONDS, Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Consumer<Long>() {
                @Override
                public void accept(Long aLong) throws Exception {
                    // do smth
                }
            });
Run Code Online (Sandbox Code Playgroud)

这将在大约128个值之后崩溃,这很明显我消耗的速度比获取项目慢.

但后来我们也一样 Observable

     Observable.interval(1, TimeUnit.MILLISECONDS, Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Consumer<Long>() {
                @Override
                public void accept(Long aLong) throws Exception {
                    // do smth
                }
            });
Run Code Online (Sandbox Code Playgroud)

这根本不会崩溃,即使我延迟消耗它仍然有效.为了让Flowable工作让我说我放onBackpressureDrop操作员,崩溃已经消失,但并非所有值都被发出.

所以我目前无法找到答案的基本问题是我为什么要关心backpressure何时可以使用普通Observable仍然可以在不管理的情况下获得所有值buffer?或者从另一方面来看,有什么优势backpressure可以帮助我管理和处理消费?

java android rx-java

115
推荐指数
3
解决办法
4万
查看次数

投影 - 将3d转换为2d

我有问题或者好,我不知道如何将x,y,z值转换为3d点到2d点,我必须绘制投影,其中我有x,y,z值的点,但我不知道如何将它们转换为2d,这样我就可以将它们移动到我的轴上.

在此输入图像描述

我一直在环顾wiki和google,但是我不太确定我应该使用哪些矩阵变换来获得想要的结果.

math graph projection matrix

10
推荐指数
2
解决办法
2万
查看次数

运动布局阻止了Recyclerview的更新

我已经开始使用运动布局进行一些顶部栏滚动,并且看起来存在一个问题,该问题阻止了回收站视图显示更新的数据。目前我使用2.0.0-alpha3ConstraintLayout。在视图中,我有工具栏和2个用作过滤器的选项卡,可以说filterXfilterY它们通过一些rx东西,而这些东西基本上只是根据来过滤项目列表,type这并不重要,因为数据已正确过滤,线程正确,数据被传递到适配器,但是当我将运动布局滚动到顶部或底部时,更改有时不反映在回收器视图中,在我稍微滚动甚至触摸后它们就会重新加载,在标准情况下不会发生ConstraitLayout。有没有人经历过这种情况并且知道任何解决方案?

编辑:具有运动布局的布局:

<androidx.constraintlayout.motion.widget.MotionLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layoutDescription="@xml/scene_month">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:navigationIcon="@drawable/ic_back"/>

    <TextView
        android:id="@+id/title"
        style="@style/ActivityTitle"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/toolbar" />

    <com.example.FilterView
        android:id='@+id/filter_view'
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@android:color/white"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/title"/>

    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:clipToPadding="false"
        android:paddingBottom="16dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@id/filter_view" />

</androidx.constraintlayout.motion.widget.MotionLayout>
Run Code Online (Sandbox Code Playgroud)

和运动场景

<?xml version="1.0" encoding="utf-8"?>
<MotionScene xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <Transition
        app:constraintSetEnd="@id/end"
        app:constraintSetStart="@id/start">
        <OnSwipe
            app:dragDirection="dragUp"
            app:touchAnchorId="@id/recycler"
            app:touchAnchorSide="top" />
    </Transition>

    <ConstraintSet android:id="@+id/start">
        <Constraint android:id="@id/title"
            android:text="@string/title"
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:gravity="center_vertical"
            android:textSize="28sp"
            android:textColor="@color/dark_gray"
            android:fontFamily="@font/rubik_medium"
            android:layout_marginStart="16dp" …
Run Code Online (Sandbox Code Playgroud)

android android-motionlayout

6
推荐指数
2
解决办法
503
查看次数

评估Matlab的符号功能

我有符号功能的问题.我正在创建自己的函数,其第一个参数是一个字符串.然后我将该字符串转换为符号函数:

f =  syms(func)
Run Code Online (Sandbox Code Playgroud)

让我们说我的字符串是sin(x).所以现在我想用它来计算它subs.

a = subs(f, 1)
Run Code Online (Sandbox Code Playgroud)

结果是sin(1)而不是数字.

因为0它正常工作和计算.我应该怎么做才能得到实际的结果,不仅sin(1)还是sin(2)等?

matlab symbolic-math

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

Android谷歌+登录片段

目前我正在尝试使用片段实现google + login,以便我可以在不同的活动中使用它.我已经创建了这样的片段

public class GoogleSignUpFragment extends Fragment implements
    ConnectionCallbacks, OnConnectionFailedListener, OnClickListener {

// PlusClient Variables
private static final int REQUEST_CODE_RESOLVE_ERR = 9000;
private ProgressDialog mConnectionProgressDialog;
private PlusClient mPlusClient;
private ConnectionResult mConnectionResult;

@Override
public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    mPlusClient = new PlusClient.Builder(getActivity()
            .getApplicationContext(), this, this)
            .setActions("http://schemas.google.com/AddActivity",
                    "http://schemas.google.com/BuyActivity")
            .setScopes(Scopes.PLUS_LOGIN, Scopes.PLUS_PROFILE).build();

    getActivity().findViewById(R.id.sign_in_button)
            .setOnClickListener(this);

    // Progress bar to be displayed if the connection failure is not
    // resolved.
    mConnectionProgressDialog = new ProgressDialog(getActivity());
    mConnectionProgressDialog.setMessage("Signing in...");

}

@Override
public …
Run Code Online (Sandbox Code Playgroud)

android android-fragments google-plus

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

Dagger 2 Component.Builder

我一直想知道创建自己的@Component.Builder内部Components而不是使用默认内部有什么好处?文档没有对它们说太多,也没有找到任何合理的例子.有人可以分享一些想法吗?

java dependency-injection dagger-2

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

HMS地理编码功能

我目前正在开发一些map'ish应用程序,我想支持依赖HMS服务的华为手机。我已经成功地实现了地图和标记,但是我在地理编码坐标方面遇到了问题,使用谷歌它很简单,Geocoder在 HMS 中我没有看到任何类似的东西,我一直在查看该site包,但看起来不像这样应该使用,我也看到他们确实有geocodereverseGeocode但是在JS库中,android hms地图库中不存在这样的东西。

也许有人已经遇到过类似的问题,并且对如何使用 hms 对我的坐标进行地理编码有一些提示?

android huawei-mobile-services

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

Kotlin 多平台 Cocoapods 集成问题

所以我尝试使用 kotlin 多平台构建一个项目,我设法与数据库/ktor 等集成,但问题是当我需要 cocoapods 的一些依赖项时。我发现从 kotlin 1.4 xcode 开始不需要构建这样的依赖关系(但是即使它失败了,除非我在我的机器上安装了 xcode)。但到目前为止,每次我在同步中添加一个pod部分时都会失败:cocoapodsbuild.gradle.kts

Exception in thread "main" java.lang.Error: /var/folders/6p/0kpnx2mj22589gthf1dddjwhtr2_tq/T/15810392041507337443.m:1:9: fatal error: module 'AFNetworking' not found
    at org.jetbrains.kotlin.native.interop.indexer.UtilsKt.ensureNoCompileErrors(Utils.kt:152)
    at org.jetbrains.kotlin.native.interop.indexer.ModuleSupportKt.getModulesASTFiles(ModuleSupport.kt:68)
    at org.jetbrains.kotlin.native.interop.indexer.ModuleSupportKt.getModulesInfo(ModuleSupport.kt:14)
    at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.buildNativeLibrary(main.kt:506)
    at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.processCLib(main.kt:264)
    at org.jetbrains.kotlin.native.interop.gen.jvm.MainKt.interop(main.kt:74)
    at org.jetbrains.kotlin.cli.utilities.InteropCompilerKt.invokeInterop(InteropCompiler.kt:45)
    at org.jetbrains.kotlin.cli.utilities.MainKt.mainImpl(main.kt:19)
    at org.jetbrains.kotlin.cli.utilities.MainKt.main(main.kt:41)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':example:cinteropAFNetworkingIos'.
> Process 'command '/Applications/Android Studio 4.2 Preview.app/Contents/jre/jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
Run Code Online (Sandbox Code Playgroud)

当我启动 podspec 时,它会正确生成,我的构建 gradle 文件:最上面的一个:

buildscript { …
Run Code Online (Sandbox Code Playgroud)

kotlin-multiplatform

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

正确取消 kotlin 协程作业

我正在为如何正确取消协程工作而摸不着头脑。测试用例很简单我有一个包含两种方法的类:

class CancellationTest {
   private var job: Job? = null
   private var scope = MainScope()

   fun run() {
      job?.cancel()
      job = scope.launch { doWork() }
   }

   fun doWork() {
      // gets data from some source and send it to BE
   }
}
Run Code Online (Sandbox Code Playgroud)

方法doWork有一个 api 调用,并且suspending遵循cancellation.

在上面的示例中,在对成功发送到后端的对象进行计数后,我可以看到许多重复项,这意味着之前cancel没有真正cancel调用过。

但是,如果我使用在互联网上找到的片段

internal class WorkingCancellation<T> {
    private val activeTask = AtomicReference<Deferred<T>?>(null)
    suspend fun cancelPreviousThenRun(block: suspend () -> T): T {
        activeTask.get()?.cancelAndJoin()

        return coroutineScope {
            val …
Run Code Online (Sandbox Code Playgroud)

kotlin kotlin-coroutines

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

如何在调整大小时重新定位FlowLayout组件.

我想放入FlowLayout让我们说5个标签BorderLayout作为北面板(BorderLayout.NORTH),当我调整窗口/框架的大小时,我希望标签不会消失,而是转移到新的行.

我一直在阅读有关min,max值和preferredLayoutSize方法的内容.然而他们似乎没有帮助,我仍然感到困惑.

另外,我不想使用其他布局,如包装或其他东西.

java swing flowlayout border-layout

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

凸路径-如何?

有人可以解释一下convex路径的计算方法吗?我需要画一些cubic线,但是路径显示为non convex。然而,当我只能留下lines或只是cubic它是那么convex。问题是我需要一些非规则形状的背景,并且需要Convex path阴影轮廓,但即使有可能,我也无法获得如何将绘图cubic与一些线连接convex path起来的方法

android canvas

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

Java限定地图

我正在寻找某种具有固定大小的地图,例如20个条目,但不仅如此,我想只保留最低值,让我说我正在评估某种功能并在我的地图中插入结果(我需要地图,因为我必须保持键值)但我想只有20个最低的结果.我正在考虑排序然后删除最后一个元素,但我需要为数百万条记录做,所以每次添加值时排序效率不高,也许有更好的方法?感谢帮助.

java collections optimization dictionary data-structures

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