Android——片段事務調用失敗

來源:互聯網
上載者:User

標籤:oid   根據   頁面   解決方案   因此   響應   對象   支付   get   

    遇到一個情況:

    在一個定時器中,每秒發起一次網路請求查詢訂單支付狀態,如果支付成功,則在response中發出一條資訊;

    handler中收到資訊,則控制片段切換。

 

    結果遇到了一個錯誤:就是片段切換事務報錯,存在 Null 物件調用beginTransaction() 。

    原因:因為定時器每秒發出請求,上一秒發出的網路請求的響應還沒回來,下一秒又發出;結果上一個請求的響應到達後,控制了片段切換,此時片段對象已經被替換(但未被銷毀),而頁面切換後第二個網路請求的響應又回來了,所以被替換掉的片段仍然根據響應結果發出資訊,handler中響應資訊控制片段切換,而此時該片段並不在任何一個activity中,因此也就無法通過 getFragmentManager() 獲得片段管理器,因此此時  getFragmentManager().beginTransaction()  就會報錯。

 

    解決方案:控制網路請求發出的頻率

    在定時器中,增加一個判斷條件,每隔5秒(自己定,足夠長即可),發出一次網路請求。

Android——片段事務調用失敗

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.