Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android为什么文本一次显示_Java_Android_Android Activity_Android Lifecycle_Oncreate - Fatal编程技术网

Java Android为什么文本一次显示

Java Android为什么文本一次显示,java,android,android-activity,android-lifecycle,oncreate,Java,Android,Android Activity,Android Lifecycle,Oncreate,我刚刚开始学习Android Studio。根据 用户可见的所有活动都发生在onStart和onStop之间。 为什么在我的简单程序中编写的文本“onCreate”会在第一次运行时显示 public class MainActivity extends AppCompatActivity { private TextView texten = null; private void print(String text) { String line = text + "\n";

我刚刚开始学习Android Studio。根据 用户可见的所有活动都发生在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");
}

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

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

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

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

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

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

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


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

    我希望生命周期现在已经清楚了。:)setContentView(texten);不产生错误?setContentView的参数是资源id,而不是View@skippy:请参阅
    setContentView
    的另一个签名。