Android 活动(Activity)
活动代表了一个具有用户界面的单一屏幕,如 Java 的窗口或者帧。Android 的活动是 ContextThemeWrapper 类的子类。
如果你曾经用 C,C++ 或者 Java 语言编程,你应该知道这些程序从 main() 函数开始。很类似的,Android 系统初始化它的程序是通过活动中的 onCreate() 回调的调用开始的。存在有一序列的回调方法来启动一个活动,同时有一序列的方法来关闭活动,如下面的活动声明周期图所示:
Activity 类定义了下面的回调。你可以不用实现所有的回调方法。当了解其中的每一个非常的重要,实现这些可以保证你的应用行为如用户所期望的那样。
回调 |
描述 |
onCreate() |
这是第一个回调,在活动第一次创建的时候调用 |
onStart() |
这个回调在活动为用户可见时被调用 |
onResume() |
这个回调在应用程序与用户开始可交互的时候调用 |
onPause() |
被暂停的活动无法接受用户输入,不能执行任何代码。当当前活动将要被暂停,上一个活动将要被恢复时调用(切后台会调用这个,然后切回来先调用onStop()方法,之后就会调用onPause()方法) |
onStop() |
当活动不在可见时调用(切后台会调用这个) |
onDestroy() |
当活动被系统销毁之前调用 |
onRestart() |
当活动被停止以后重新打开时调用,切后台回来,会调用onRestart()方法 |
以下是实例:
packagecom.example.emo; importandroidx.annotation.Nullable; importandroidx.appcompat.app.AppCompatActivity; importandroid.graphics.Color; importandroid.os.Bundle; importandroid.os.PersistableBundle; importandroid.util.Log; importandroid.view.MotionEvent; importandroid.view.View; importandroid.widget.EditText; importandroid.widget.TextView; publicclassMainActivityextendsAppCompatActivity { Stringmsg="activity_demo"; protectedvoidonCreate(BundlesavedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d(msg, "The onCreate() event"); TextViewview=findViewById(R.id.main_text); view.setText("你好"); Viewbutton=findViewById(R.id.button); button.setOnClickListener( newView.OnClickListener() { publicvoidonClick(Viewview) { Log.d("button", "i am clicked"); } } ); button.setOnTouchListener(newView.OnTouchListener() { publicbooleanonTouch(Viewview, MotionEventmotionEvent) { Log.d("button", "i am touched"); returnfalse; } }); Viewbutton_enter=findViewById(R.id.button_enter); button_enter.setOnClickListener(newView.OnClickListener() { publicvoidonClick(Viewview) { EditTexteditText=findViewById(R.id.input); Log.d("edit", editText.getText().toString()); } }); } protectedvoidonStart() { super.onStart(); Log.d(msg, "The onStart() event"); } protectedvoidonStop() { super.onStop(); Log.d(msg, "The onStop() event"); } protectedvoidonDestroy() { super.onDestroy(); Log.d(msg, "The onDestroy() event"); } protectedvoidonPause() { super.onPause(); Log.d(msg, "The onPause() event"); } protectedvoidonResume() { super.onResume(); Log.d(msg, "The onResume() event"); } protectedvoidonRestart() { super.onRestart(); Log.d(msg, "The onRestart() event"); } }
TheonCreate() eventTheonStart() eventTheonResume() eventTheonPause() eventTheonStop() eventTheonRestart() eventTheonStart() eventTheonResume() eventTheonPause() eventTheonStop() event