如果在應用程序中使用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. 是否需要使用Clonable?
- 3. 您是否會避免使用需要.NET 3.5的組件?
- 4. 是否需要mysql_close和pg_close?
- 5. 是否需要resx文件?
- 6. 是否是ioncube loader需要在wordpress上使用套件插件?
- 7. 爲什麼某些組件需要「需要UIExplorerBlock」和「需要UIExplorerPage」?
- 8. 使用AddHandler時,是否需要EnterWriteLock?
- 9. 是否需要在onActivityResult()中使用super.onActivityResult()?
- 10. 我是否需要使用MultipleIterator的foreach?
- 11. Java是否需要使用Red5
- 12. 您是否需要使用Invoke on Action?
- 13. 彈簧:是否需要使用@Resource
- 14. 是否需要使用var foo = new RegExp?
- 15. SimpleDateFormat - 您是否需要使用RegEx?
- 16. 使用ActionController :: Live是否需要睡眠?
- 17. 是否需要在Delphi中使用GUID?
- 18. bscmake是否需要使用Visual Studio 2010?
- 19. 是否需要調用AsyncOperation.PostOperationCompleted?
- 20. 是否需要調用session_write_close?
- 21. PHP數組是否需要在使用之前聲明?
- 22. zendframework/zend-http軟件包需要49個組件是否正常?
- 23. 是否需要LDT?
- 24. UINavigationController是否需要?
- 25. 是否需要SQLCipher?
- 26. 是否需要main.cpp?
- 27. 是否需要Zend_Acl?
- 28. 是否需要AudioServicesDisposeSystemSoundID?
- 29. 是否需要UserController?
- 30. 即使沒有附件,是否需要使用C#處理SMTP?