有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android为什么在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) 个答案

  1. # 1 楼答案

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

    enter image description here

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

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

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

    如果您看到onCreate的描述,它会说-

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

    onCreate是我们设置视图的地方。完成此操作后,下一个回调是onStart,在调用时,您可以在onCreate中看到视图create

    因此,以下是您的答案:您正在onCreate中创建视图,该视图在执行onStart之后显示。这并不是说你在onCreate中做的任何事情都没有明显的效果。您正在设置文本,这意味着创建视图,并在活动可见时显示该视图