2014-02-06 209 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 

    } 

}