Xamarin‑Android C#,方法名是大写On开头:
OnCreate()、OnStart()、OnResume()、OnPause()、OnStop()、OnRestart()、OnDestroy(),和原生Java小写on开头只是C#命名规范差异,生命周期流转逻辑一模一样。
7个回调作用
- OnCreate():Activity首次创建,加载布局、初始化,只执行一次
- OnStart():界面变为对用户可见,但还无法交互
- OnResume():来到前台,获得焦点,用户可以操作,进入运行状态
- OnPause():界面失去焦点,被其他页面部分遮挡,进入暂停状态
- OnStop():界面完全不可见,进入停止状态
- OnRestart():处于Stop停止状态的Activity,重新激活之前触发
- OnDestroy():Activity销毁,释放资源
执行流程
- 打开页面(创建→运行)
OnCreate()→OnStart()→OnResume() - 页面退后台、被完全遮盖(运行→停止)
OnPause()→OnStop() - 后台切回页面(Stop状态恢复)
OnRestart()→OnStart()→OnResume() - 关闭销毁页面
OnPause()→OnStop()→OnDestroy()
系统内存不足时,位于Stop状态的Activity会被系统回收杀死,不一定会执行OnDestroy。
Xamarin.Android MainActivity 完整可运行代码
using Android.App;
using Android.OS;
namespace XamarinLifeDemo
{
[Activity(Label = "MainActivity")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.Main);
// 页面初始化,绑定控件
}
protected override void OnStart()
{
base.OnStart();
// 界面可见
}
protected override void OnResume()
{
base.OnResume();
// 获取焦点,可交互
}
protected override void OnPause()
{
base.OnPause();
// 失去焦点,暂停
}
protected override void OnStop()
{
base.OnStop();
// 界面完全看不见
}
protected override void OnRestart()
{
base.OnRestart();
// 从停止状态重新唤醒
}
protected override void OnDestroy()
{
base.OnDestroy();
// 销毁、释放资源
}
}
}
总结
- 启动:
OnCreate → OnStart → OnResume - 后台恢复:
OnRestart → OnStart → OnResume - 退出销毁:
OnPause → OnStop → OnDestroy - 内存不足:Stop状态Activity可被系统回收,不保证调用OnDestroy

Previous: 日志工具类
Next: Activity 7大生命周期