如果在应用程序中使用了android-arch-lifecycle组件,是否有必要使用Rxlifecycle?或者Rxlifecycle是多余的? 或者如果我使用Rxlifecycle和RxJava,是否有必要使用android-arch-lifecycle组件?
答案 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库中。