Android为什么会在onCreate上显示文本

时间:2016-02-07 19:43:11

标签: java android android-activity android-lifecycle oncreate

我刚开始学习Android Studio。根据 Android developer 用户可见的所有活动都发生在onStart和onStop之间。 为什么文本“onCreate”写在我的简单程序中,在第一次运行时显示?

public class MainActivity extends AppCompatActivity {

private TextView texten = null;

private void print(String text) {
    String line = text + "\n";
    texten.setText(texten.getText() + line);
}

DecimalFormat dec = new DecimalFormat("0.0000");

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    texten = new TextView(this);
    texten.setText("");
    setContentView(texten);
    print("onCreate");
}

...

1 个答案:

答案 0 :(得分:1)

如果您看到活动生命周期,则要在活动创建时调用的第一个方法是onCreate()。生命周期分为以下三个部分。

enter image description here

  1. 活动的整个生命周期发生在第一次调用onCreate(Bundle)到最后一次调用onDestroy()之间。活动将在onCreate()中执行“全局”状态的所有设置,并释放onDestroy()中的所有剩余资源。例如,如果它有一个在后台运行的线程从网络下载数据,它可以在onCreate()中创建该线程,然后在onDestroy()中停止该线程。

  2. 活动的可见生命周期发生在对onStart()的调用与对onStop()的相应调用之间。在此期间,用户可以在屏幕上看到活动,尽管它可能不在前台并与用户交互。在这两种方法之间,您可以维护向用户显示活动所需的资源。例如,您可以在BroadcastReceiver中注册onStart()以监控影响您的用户界面的更改,并在用户不再看到您显示的内容时在onStop()中取消注册。 onStart()onStop()方法可以多次调用,因为活动对用户可见并且隐藏。

  3. 活动的前景生命周期发生在对onResume()的调用与对onPause()的相应调用之间。在此期间,活动位于所有其他活动之前并与用户交互。活动可以经常在恢复和暂停状态之间进行 - 例如,当设备进入休眠状态,交付活动结果时,何时传递新意图 - 因此这些方法中的代码应该相当轻量级。

  4. 如果您看到onCreate的说明,请说 -

    首次创建活动时调用。这是您应该执行所有常规静态设置的地方:创建视图,将数据绑定到列表等。此方法还为您提供包含活动先前冻结状态的Bundle(如果有)。始终紧跟onStart()。

    onCreate是我们设置观点的地方。完成此操作后,下一次回调即onStart,您可以在其中看到onCreate中的视图创建。

    所以,这是您的答案:您正在onCreate创建视图,该视图在执行onStart后显示。不管你在onCreate做什么都没有明显效果。您正在设置文本,这意味着创建视图,一旦活动可见,它就会显示。