什么是Android活动生命周期?
Android是开源操作系统,可用于许多任务。
当我们启动或者打开android应用程序时,它会经历各种状态,这称为Android Activity生命周期。
Android简介
Android是基于Linux的开源操作系统,带有Java编程接口,可用于智能手机(支持Android OS的触摸屏设备)等移动设备。
它包含多个API,以支持基于位置的服务(例如GPS)。
它还广泛支持多媒体硬件控制,以使用相机和麦克风执行播放或者录制。
它支持多任务处理,我们可以从一个任务窗口移动到另一个任务窗口,并且多个应用程序可以同时运行。
这将为重用应用程序组件和替换本机应用程序提供机会。
有了这个,让我们进一步了解一下Android活动的生命周期。
什么是Android活动生命周期?
当用户浏览应用程序时,应用程序中的Activity实例会在其生命周期的不同阶段过渡。
Activity类提供了许多回调,这些回调使活动可以知道状态已更改:系统正在创建,停止或者恢复活动,或者销毁该活动所在的进程。
现在,借助生命周期方法和回调,更详细地了解Android Activity生命周期。
生命周期方法和回调
通常,活动生命周期具有七个回调方法:
onCreate()
onStart()
onResume()
onPause()
onStop()
onRestart()
onDestroy()
现在,让我们详细了解Android Activity生命周期方法和回调。
查看下图以了解生命周期。
我们必须意识到,程序是使用不同的编程语言从main()函数开始的。
同样,android通过调用onCreate()回调方法在活动中启动程序。
有一系列回调方法可启动一个活动,然后按上面的活动生命周期图中所示的不同方法进行分解:
- onCreate():在此状态下,将创建活动。
2. onStart():
当活动对用户可见时,将调用此回调方法。
onResume():活动位于前台,用户可以与其进行交互。
onPause():活动被另一活动部分遮盖。
前景中的另一项活动是半透明的。onStop():活动被完全隐藏并且对用户不可见。
onRestart():活动从"已停止"状态返回或者与用户进行交互,或者活动结束运行并消失。
如果活动返回,则系统调用onRestart()
7. onDestroy():活动被销毁并从内存中删除。
因此,这些是"活动生命周期"的各种方法。
现在,让我们看看生命周期方法和状态将要发生的情况。
- `当我们打开应用程序时,它将经历以下状态:
onCreate()–> onStart()–> onResume()
"当我们按下后退按钮并退出应用程序时" onPaused()—> onStop()–> onDestory()
`当按下主页按钮时onPaused()–> onStop()
在按下主页按钮后,再次从最近的任务列表中打开应用程序时,onRestart()–> onStart()–> onResume()
从对话框中取消对话框或者后退按钮后onResume()
"如果电话正在响铃,并且用户正在使用该应用" onPause()–> onResume()
通话结束后onResume()
"当手机屏幕关闭时" onPaused()–> onStop()
"当手机屏幕重新打开时" onRestart()–> onStart()–> onResume()
因此,在某些情况下,应用会经历各种状态。
现在,让我们看看如何借助下面的示例来实现这一点。
演示:实施活动生命周期
步骤1:首先,我们需要使用Java或者Kotlin编程语言构建一个简单的Android应用。
在此演示中,我使用的是Kotlin编程语言,因为与Java相比,Kotlin的代码行数更少。
如果我们想知道如何使用Java创建Android应用,请参考Android教程。
另外,如果我们想使用Kotlin创建Android应用程序,请查看Kotlin Android教程上的本文。
步骤2:构建应用程序后,我们需要配置MainActivity.kt类文件并覆盖回调方法。
让我们看下面的代码以更广泛地理解这一点。
package com.example.activitycycle import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.util.Log import android.widget.Toast class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) print("***App state: OnCreate***n") Toast.makeText(getApplicationContext(),"App state: OnCreate",Toast.LENGTH_LONG).show(); } override fun onStart() { super.onStart() print("***App state: OnStart***n") Toast.makeText(getApplicationContext(),"App state: OnStart",Toast.LENGTH_LONG).show(); } override fun onResume() { super.onResume() print("***App state: OnResume***n") Toast.makeText(getApplicationContext(),"App state: OnResume",Toast.LENGTH_LONG).show(); } override fun onStop() { super.onStop() print("***App state: OnStop***n") Toast.makeText(getApplicationContext(),"App state: OnStop",Toast.LENGTH_LONG).show(); } override fun onPause() { super.onPause() print("***App state: OnPause***n") Toast.makeText(getApplicationContext(),"App state: OnPause",Toast.LENGTH_LONG).show(); } override fun onRestart() { super.onRestart() print("***App state: OnReStart***n") Toast.makeText(getApplicationContext(),"App state: OnRestart",Toast.LENGTH_LONG).show(); } override fun onDestroy() { super.onDestroy() print("***App state: OnDestroy***n") Toast.makeText(getApplicationContext(),"App state: OnDestroy",Toast.LENGTH_LONG).show(); } }
基本上,在上面的示例中,我将覆盖所有方法并打印状态。
另外,我用过 Toast.makeText()
,以在应用程序本身中显示生命周期方法。
每当应用程序经历各种状态时,它都会在应用程序本身中调用并显示方法。
这就是Android活动生命周期的工作方式。