2016-03-06 72 views
0

我正在開發android應用程序的udacity課程。使用Bundle而不是public方法傳遞變量的優點是什麼?

我在想,如果我在第5課:處理列表項目單擊的替代解決方案是正確的。

當我們有2個面板,我們從列表中點擊一個項目,烏里應直接傳遞給DetailFragment從MainActivity無需調用DetailActivity

我已經看到了官方的解決辦法是一個挑戰:用捆綁,並將其傳遞作爲fragment.setArguments(args)中的參數;

但不是上面爲什麼不創建一個公共方法?我試圖創建一個公開的方法,如setmUri(URI URI)來設置成員變量穆裏在DetailFragment,然後從MainActivity調用它,它運行良好

但我的最後一個問題是:什麼是專家的傳遞變量使用Bundle而不是publics方法在這種特殊情況下?

非常感謝。

+0

謝謝CommonsWare – astroboyzaas

回答

0

我試圖創建一個公開的方法,如setmUri(URI URI)來設置成員變量穆裏在DetailFragment,然後從MainActivity調用它,它運行良好

默認情況下,不會處理配置更改。當用戶旋轉屏幕,更改語言環境,連接鍵盤等時,默認情況下,您的活動及其片段將被銷燬並重新創建。

它也不會處理所有太常見進程終止情景:

  • 用戶在應用程式
  • 用戶按下HOME,您的應用程序移動到後臺
  • 5分鐘後,當你仍然在後臺,Android終止你的進程釋放系統RAM的其他進程
  • 5分鐘後,用戶返回到您的應用程序

在這些更改(配置更改或進程終止)期間,任何屬於已保存實例狀態的內容都不會丟失。要輸入到片段中,最簡單的方法是將參數Bundle作爲已保存實例狀態的一部分。

相關問題