Java Android为什么文本一次显示
我刚刚开始学习Android Studio。根据 用户可见的所有活动都发生在onStart和onStop之间。 为什么在我的简单程序中编写的文本“onCreate”会在第一次运行时显示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";
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
中看到视图create
因此,以下是您的答案:您正在执行
onStart
后显示的onCreate
中创建视图。这并不是说在onCreate
中执行的任何操作都没有明显的效果。您正在设置文本,这意味着创建视图,并在活动可见时显示该视图。我希望生命周期现在已经清楚了。:)setContentView(texten);不产生错误?setContentView的参数是资源id,而不是View@skippy:请参阅setContentView
的另一个签名。