2 回答

TA貢獻(xiàn)1784條經(jīng)驗 獲得超9個贊
問題是您protected void onStart()
的生命周期方法Activity
是在Activity
可見后調(diào)用的。但那時你onComplete
還沒有被調(diào)用,所以cameraList
仍然是null
. 因此,以某種非生命周期方法(如果需要創(chuàng)建一個)或直接在onComplete
.
正如@Ben P 指出的那樣,直接調(diào)用生命周期方法是個壞主意。在這種情況下,您會干預(yù)可能導(dǎo)致意外行為的正常生命周期調(diào)用序列。

TA貢獻(xiàn)1829條經(jīng)驗 獲得超13個贊
顯然你有,NPE
因為你忘記了從改造中獲取相機是異步操作。這意味著它不會在您調(diào)用它時完成,而是在一段時間后完成。
所以你有什么
你打過電話了
onCreate
異步操作開始,您請求列表
您在 中使用該列表
onStart
,但該列表尚不 存在異步操作結(jié)束,列表現(xiàn)在可用。
換句話說,在調(diào)用 RxJava 的subscribe
方法之前,您不能使用它。
不要onStart()
手動調(diào)用,畢竟它的系統(tǒng)回調(diào)會在用戶看到屏幕時自動運行。它發(fā)生的時間比您手動調(diào)用要早得多。
添加回答
舉報