小编use*_*758的帖子

任务取消如何在RxJava中工作?

我不清楚如何在RXJava中实现任务取消.

我对移植使用Guava构建的现有API很感兴趣ListenableFuture.我的用例如下:

  • 我有一个单一的操作,由一系列期货加入 Futures.transform()
  • 多个订户观察操作的最终未来.
  • 每个观察者都可以取消最后的未来,所有观察者都会看到取消事件.
  • 取消最终的未来导致其依赖性的取消,例如按顺序1- > 2- > 3,取消3传播到2,等等.

关于这一点,RxJava维基中的信息很少; 我可以找到的唯一引用取消提及Subscription相当于.NET的Disposable,但据我所知,Subscription仅提供取消订阅序列中后续值的功能.

我不清楚如何通过这个API实现"任何订阅者可以取消"语义.我是以错误的方式思考这个问题吗?

任何输入将不胜感激.

java rx-java

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

如何构造Immutable.Record的子类?

class Event extends Immutable.Record {
  constructor(text) {
    super({text: text, timestamp: Date.now()});
  }
}
Run Code Online (Sandbox Code Playgroud)

调用new Event()似乎返回一个constuctor函数:

new Event('started').toString()
Run Code Online (Sandbox Code Playgroud)

"function Record(values){if(values instanceof RecordType){return values;}

if(!(此实例为RecordType)){return new RecordType(values);}

if(!hasInitialized){hasInitialized = true; var keys = Object.keys(defaultValues); setProps(RecordTypePrototype,密钥); RecordTypePrototype.size = keys.length; RecordTypePrototype._name =名称; RecordTypePrototype._keys =键; RecordTypePrototype._defaultValues = defaultValues;}

this._map =地图(值);}"

而调用函数会返回预期的输出:

new Event('started')().toString()
Run Code Online (Sandbox Code Playgroud)

"Record {"text":"started","timestamp":1453374580203}"

我究竟做错了什么?

javascript ecmascript-6 immutable.js

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

Android自定义视图忽略XML中的"android:enabled"?

我正在设置android:enabled="false"自定义视图,但它似乎对该isEnabled()属性没有任何影响.

这是一个简单的测试用例:

public class TestView extends View {

    public TestView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint p = new Paint();
        p.setTextAlign(Align.CENTER);
        p.setTextSize(ViewUtils.dpToPx(this, 10));
        canvas.drawText("Enabled = " + (isEnabled() ? "true" : "false"),
                getWidth() / 2,
                getHeight() / 2,
                p);
    }
}
Run Code Online (Sandbox Code Playgroud)

和相应的XML:

<com.example.TestView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="@android:color/darker_gray"
    android:enabled="false"
    android:layout_width="100dp"
    android:layout_height="100dp"/>
Run Code Online (Sandbox Code Playgroud)

输出视图如下所示:

产量

有人可以解释一下原因吗?

android view

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

标签 统计

android ×1

ecmascript-6 ×1

immutable.js ×1

java ×1

javascript ×1

rx-java ×1

view ×1