是否需要将rxlifecycle与android-arch-lifecycle组件一起使用?

时间:2017-07-26 04:58:46

标签: android android-architecture-components android-architecture-lifecycle

如果在应用程序中使用了android-arch-lifecycle组件,是否有必要使用Rxlifecycle?或者Rxlifecycle是多余的? 或者如果我使用Rxlifecycle和RxJava,是否有必要使用android-arch-lifecycle组件?

2 个答案:

答案 0 :(得分:2)

不,您不需要使用RxLifecycle,但如果您使用RxJava,则使用RxLifecycle可能会有用。

如果你使用RxJava,你必须关心订阅和取消订阅自己。机器人新LiveData(类似于Rx Observables)通过使用android-arch-lifecycle来实现。如果您还想在RxJava中使用生命周期,则可以使用RxLifecycle。如其Github页面所述,RxLifecylce需要一个生命周期提供程序。生成生命周期提供程序的一个解决方案是使用android-arch-lifecycle。

`def Excel2CSV(ExcelFile, SheetName, CSVFile):
     import xlrd
     import csv
     workbook = xlrd.open_workbook(ExcelFile)
     worksheet = workbook.sheet_by_name(SheetName)
     csvfile = open(CSVFile, 'wb')
     wr = csv.writer(csvfile, quoting=csv.QUOTE_ALL)

     for rownum in xrange(worksheet.nrows):
         wr.writerow(
             list(x.encode('utf-8') if type(x) == type(u'') else x
                  for x in worksheet.row_values(rownum)))

     csvfile.close()`

编辑:在某些情况下,RxLifecycle可能会出现问题,这就是创建者建议使用AutoDispose或手动处理子记录的原因。他在this post中描述了这些问题。

答案 1 :(得分:1)

我相信,如果您不使用Android架构组件ViewModel,两个库都是相同的。

使用ViewModel,您可以在设备旋转时阻止数据准备,这意味着ViewModel会保留在内存中,即使活动必须重新启动以响应设备轮换。

我不认为这样的组件存在于RxLifecycle库中。