如果在應用程序中使用android-arch-lifecycle組件,是否需要使用Rxlifecycle?或者Rxlifecycle是多餘的? 或者如果我使用Rxlifecycle和RxJava,是否有必要使用android-arch-lifecycle組件?是否需要使用Rxlifecycle和android-arch-lifecycle組件?
0
A
回答
1
我相信,如果你不使用android架構組件ViewModel,兩個庫都是一樣的。
使用ViewModel,您可以防止旋轉設備時的數據準備,即ViewModel保留在內存中,即使活動必須重新啓動以響應設備旋轉。我不認爲RxLifecycle庫中存在這樣的組件。
2
不,您不需要使用RxLifecycle,但如果您使用RxJava,則可能會使用RxLifecycle。
如果您使用RxJava,您必須關心訂閱和取消訂閱自己。 Androids新的LiveData(它類似於Rx Observables)通過使用android-arch生命週期來完成此操作。如果您還想在RxJava中使用生命週期知識,則可以使用RxLifecycle。如其Github頁面所述,RxLifecylce需要一個生命週期提供程序。生成生命週期提供程序的一個解決方案是使用android-arch生命週期。
public class MyActivity extends LifecycleActivity {
private final LifecycleProvider<Lifecycle.Event> provider
= AndroidLifecycle.createLifecycleProvider(this);
@Override
public void onResume() {
super.onResume();
myObservable
.compose(provider.bindToLifecycle())
.subscribe();
}
編輯:RxLifecycle可能在某些情況下的問題,這就是爲什麼創作者recomends使用AutoDispose或處理subscrption改爲手動。他在this post中描述了這些問題。
相關問題
- 1. doClick()是否需要啓用組件?
- 2. 是否需要使用imap_close?
- 3. 是否需要使用Clonable?
- 4. 您是否會避免使用需要.NET 3.5的組件?
- 5. 我是否需要使用COM(組件對象模塊)
- 6. 是否需要mysql_close和pg_close?
- 7. Ajax是否總是需要使用node.js?
- 8. 是否需要頭文件?
- 9. 是否需要resx文件?
- 10. 是否是ioncube loader需要在wordpress上使用套件插件?
- 11. 爲什麼某些組件需要「需要UIExplorerBlock」和「需要UIExplorerPage」?
- 12. 這裏是否需要使用eval?
- 13. 我是否需要使用MultipleIterator的foreach?
- 14. 是否需要使用BigDecimal.new方法?
- 15. Process.Kill後是否需要使用Process.WaitForExit?
- 16. SimpleDateFormat - 您是否需要使用RegEx?
- 17. 需要說明這是否使用typedef
- 18. 是否需要在Delphi中使用GUID?
- 19. 我是否需要使用ReaderWriterLockSlim的MemoryBarrier?
- 20. 如果使用System.Threading.Timer,是否需要BackgroundWorker?
- 21. 使用Sitecore MaxMind是否需要Sitecore DMS
- 22. 是否需要在此處使用#import?
- 23. 彈簧:是否需要使用@Resource
- 24. 使用camel時,cxf:rsServer是否需要jaxrs:server?
- 25. 使用ActionController :: Live是否需要睡眠?
- 26. 是否需要在這裏使用ThreadLocal?
- 27. 是否需要使用var foo = new RegExp?
- 28. 使用AddHandler時,是否需要EnterWriteLock?
- 29. 使用ARC是否NSMutableArray需要屬性?
- 30. 我是否需要使用MultipleActiveResultSets feautre?