我有一個圖書館項目和一個項目,每個應用程序的免費和付費版本。在圖書館項目中,我有一個「基本活動」。這個「基本活動」必須根據其是免費還是付費版本開始兒童活動。這是一種奇怪的方式來創建一個意圖?
我所做的只是在我用startActivity()引發意圖之前,我調用了一個'Base Activity'中的方法,它必須返回意圖。我重寫我的「基本活動」的子類(付費和免費版本)這個方法,創建這樣的意圖:
return new Intent(subClassOfBaseActivity.this, ChildClassA.class);
和:
return new Intent(subClassOfBaseActivity.this, ChildClassB.class);
現在,我的問題是,它是確定通過傳遞subClassofBaseActivity.this而不是BaseActivity.this來創建意圖?
此方法總體上沒問題嗎?
因此,作爲danijoo建議使用getBaseContext()將得到更好的更多信息/更清晰? – Koded101
我會建議使用baseClass.this而不是getBaseContext,你可以在這裏閱讀它http://stackoverflow.com/questions/1026973/android-whats-the-difference-between-the-various-methods-to-get-上下文 無論如何有一個方法稱爲getParent()這將返回父活動的上下文,如果當前視圖(活動)是父活動的孩子 – Elior
@ Koded101檢查Android的源代碼我發現這個' Context'僅用於獲取應用程序包名稱,所以我假設您可以自由使用任何解決方案。我不認爲有建議的方式來將上下文傳遞給'Intent'構造函數,只是爲了創建Intent而使用你認爲它更清晰的方式。其實我通過傳遞'AnyActivity.this'沒有看到任何混淆的東西。 – andrew