Xamarin for Android Activity 生命周期
Activity Lifecycle 介绍
在开始介绍之前,先介绍几个东东,大家了解下。
Activity:对应用户的屏幕,主要用于向用户展示UI和接受用户输入。简单来说就是一个View。
Service:Android Services支持一个后台长期运行的任务,类似windows phone Background Task。
Intents:我理解为一个系统消息包,里面封装上下文,通常用于页面导航。
AndroidManifest.xml:应用程序清单,描述App需要调用什么API,使用那些资源等。
上一段代码,来看看Android Navigation 是怎么写的:
var intent = new Intent(this, typeof(CallHistoryActivity));
intent.PutStringArrayListExtra("phone_numbers", _phoneNumbers);
StartActivity(intent);
CallHistoryActivity是一个Activity,它可以接收一个名为"phone_numbers"的导航参数;
ok ~~言归正传,所谓,肚里无货而身轻体漂, 先看看Activity的生命周期经历了那些event 消息,对我们理解页面导航和消息参数传递很有帮助;
Activity Lifecycle主要是由系统框架,提供给开发人员一些方法来管理应用程序的状态及系统资源的释放;
Activity States:一共分为,Running、Paused、Backgrounded、Stopped四种

Running:用户打开应用程序,Activity正在前台运行,在导航栈顶。
Paused:当设备进入休眠状态或切换其他 Activity。
Backgrounded:Home键应用切换后台,或调用其他Intents 如:CallPhone
Stopped:回退键或memory将溢出被操作系统kill。
Activity Methods:Xamarin.Android framework 提供了强大的模型;

我们可以通过重写上面这些方法,来管理资源保存应用程序状态;注意:这些方法会阻塞UI,尽量在方法中避免处理耗时任务;
OnCreate()
创建View、初始化变量等,Activity第一个方法;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
}
OnStart()
当应用程序可见时,系统会调用这个方法;
OnResume() & OnPause()
当其他Activity挡住当前view时,系统会调用,OnPause();当用户再次获取Activity焦点时会调用OnResume()方法;
在OnPause()方法中一定要停止硬件设备的调用和线程资源释放,如Camera 、动画、线程、时钟等;
OnStop()
当Activity不在是活动的时候,其他Activity遮挡完全不可见时,系统调用OnStop();
OnDestroy()
系统销毁App前执行的最后一个方法;
OnRestart()
该Activity中没有被Destroy时,再调用该Activity时会调用该方法;
浙公网安备 33010602011771号