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时会调用该方法;

 

 

posted on 2015-01-22 16:04  Alan's  阅读(210)  评论(0)    收藏  举报

导航