事實上,呼叫startactivity()或startactivityforresult()之後,android框架中的**會完成activity物件的建立。在建立activity物件時仍然會執行activity類的構造方法。
public activity newactivity(classloader cl, string classname, intent intent) throws instantiationexception, illegalacces***ception, classnotfoundexception
可以看到,這裡通過classloader的loadclass()方法來載入指定的activity類,得到對應的class物件,然後再呼叫class物件的newinstance()方法建立activity物件。
由於class物件的newinstance()方法在建立物件時會呼叫該類的無參構造方法,因此,如果確實需要在activity構造的時候執行一些操作,可以在這個activity類中增加乙個無參的構造方法,這個構造方法會在newinstance()時被自動呼叫。
這裡有兩點需要注意:
乙個activity類中只有無參的構造方法會被執行,定義有引數的構造方法是沒有意義的。
乙個activity類中如果沒有無參構造方法,或者無參構造方法不是public的,則在執行newinstance()的時候會產生異常。
android activity啟動模式
1.標準模式 standrad 沒啟動乙個activity,都會建立乙個activity例項,放入回退棧的內部 2.單頂模式 singletop 當啟動launchmode是 singletop的時候,系統會先判斷棧頂是不是要啟動的那個activity例項,如果是,則不會建立新的例項,直接讓棧頂直接...
Android Activity啟動模式
在androidmanifest.xml中配置 android name mainactivity android launchmode standard 有以下四種 standard 預設模式,每次通過intent啟動activity時都會建立乙個新的activity例項,並放入任務棧中。sing...
android Activity切換動畫
今天準備比賽的時候 遇到了這個問題。查了些資料總結了下。主要是通過 android theme 標籤來實現 android theme style 那麼就需要自己寫style風格檔案 如下 這裡之所以寫成2style個是為了解耦然後自己寫下anim anim enter anim anim exit...