2014-02-06 97 views
4

我對android活動的程序流有點困惑,在java中,主要方法首先執行,而在android中onCreate方法首先被調用,那麼在類級別定義的變量呢?當活動開始執行時,他們如何獲得聲明/初始化,並說onCreate首先被調用。 也 我們可以在Inner類中初始化這些變量並在內部類之外使用它們的值嗎?Java變量聲明

+0

我覺得你應該先檢查活動的生命週期! https://developer.android.com/training/basics/activity-lifecycle/index.html – Pavlos

+0

你看過自動生成的文件嗎? 'onCreate()'絕對不是執行的第一行代碼。 – nhgrif

+0

在Android中基本上有一個'main'方法,並且它會執行'new Activity()'並調用'activity.onCreate(someContext)'。剩下的就是標準的java,類初始化一次(即'static'變量),然後實例初始化(fields,constructors,..) – zapl

回答

5

其實OnCreate()是你說的第一個被調用的方法。活動流這樣

OnCreate - >OnStart - >OnResume

此時活動是用戶可見

類似地,當活動結束

OnPause - >OnStop - >OnDestroy

因此回答你的問題。在這些方法中,類級別中的變量不是依賴的。因爲它的範圍是整個活動,即;從OnStartOnDestroy。通常我們可以在Oncreate中初始化它們。如果你想改變下一個活動的數值,你應該在OnResume。該Activity生命週期是如下

Lifecycle

你將擁有所有其餘的自由,你在用java做

0

典型變量初始化發生在Android的onCreate()中。如果變量不需要任何形式的Android Context,則可以在聲明的同一行上初始化。

使用內部類可能很粘。他們真的不應該改變外部階層的狀態。您應該在聲明的相同類中初始化一個變量。

0

當你想從類中的任何地方訪問一個變量時,你應該聲明該變量類名聲明,並且你可以從你的類中關於變量值的任何地方初始化該變量......在下面,樣本輪廓...

class MainActivity extends Activity { 

    //Declare your variable here 

    @Override 
    protected void onCreateActivity(Bundle savedInstanceState) { 

     //Initialize your variable here 

    } 

}