在背景线程的轮询USB读卡器

时间:2018-04-13 21:31:44

标签: android multithreading rx-java2

我想每秒从Android设备轮询读卡器。 轮询应该来自后台线程,结果应该在主线程上获得。我想为此使用RxJava。即使应用程序在后台运行,轮询线程也不会死亡。

1 个答案:

答案 0 :(得分:1)

由于你没有提供任何细节,我会做一些猜测。

Observable.interval( 1, TimeUnit.SECONDS, Schedulers.io() )
  .map( tick -> device.poll() )
  .filter( value -> goodValue( value ) )
  .observeOn( Schedulers.mainThread() )
  .subscribe( value -> updateGuiWithValue() );

这将每秒执行poll()一次,过滤只允许goodValue,并将值移动到主线程,可以在UI中显示。