在我的代码中,我创建了一个observable并保留对订阅对象的引用。
当我启动应用程序时,它会打印从1到1000000的所有数字
如果我最小化活动,我会在onPause
中订阅订阅
但是,LogCat会保留打印数字。我如何阻止它这样做?
public class MainActivity extends AppCompatActivity {
private Subscription printingNumbers;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
printingNumbers = Observable
.range(1, 500000)
.map(i -> i*2)
.subscribe(i -> System.out.println(i));
}
@Override
protected void onPause() {
super.onPause();
printingNumbers.unsubscribe();
}
}
答案 0 :(得分:1)
Range会立即返回所有值,但需要时间在Log上以使其可视化。 Interval将在给定时间返回值,这样您就可以测试取消订阅。
PS:我认为你可以将范围和间隔组合到emiits值到给定间隔的限制,但不确定,因为我只是学习RX