您的位置:首页 > 移动开发 > Android开发

android 应用五大核心组件之二(Activity)

2013-12-10 14:16 417 查看
[b]概述[/b]

Activities 是一个程序的组件之一。它的主要功能是提供界面。

一个程序一般由多个Activity组成,各activities之间关系很松散,它们之间没有直接的关联。必须有一个activity被指定为主activity,它是程序启动时首先显示的界面。每个activity都可以随意启动其它的activity。每当一个activity被启动,则前一个activity就被停止。一个程序中的所有启动的activity都被放在一个栈中,所以被停止的activity并没有销毁,而在存于棧中。新启动的activity先被存放于栈中,然后获得输入焦点。在当前活动的activity上点返回键,它被从棧中取出,然后销毁,然后上一个activity被恢复。

当一个activity因为新的activity启动而被停止时,它会收到状态变化的通知,这样的变化有多个,每个都会引起系统调用一个相应的回调方法以通知activity,这些回调方法被统称为“生命周期回调方法”。这些回调方法分别在Activity被创建、停止、恢复、销毁时被调用。

private void pickContact() {
Intent intent =new Intent(Intent.ACTION_PICK,Contacts.CONTENT_URI);
startActivityForResult(intent, PICK_CONTACT_REQUEST);
}

@Override
protected void onActivityResult(int requestCode, intresultCode, Intent data) {
if (resultCode== Activity.RESULT_OK && requestCode == PICK_CONTACT_REQUEST) {
//....doing thing
}
}


View Code

此例子展示了在onActivityResult()中的基本逻辑流程。首选检查所启动的Activity是否正确运行,resultCode为Activity.RESULT_OK表示正常,其次,查看requestCode是否与当时请求的一致,即是否为PICK_CONTACT_REQUEST。都通过后,开始操作返回的数据,也就是data参数。

Data是这样处理的,用ContentResolver向内容提供者发出请求,这个请求会返回一个游标,通过这个游标读取数据,这很像数据库表的操作。要理解此处,请查阅Content Providers一节。

[b]关闭Activity[/b]
Activity可以内部调用finish()方法关闭它自己,也可以调用finishActivity()方法关闭其它的activity。

注意:大多数情况下,你不应主动结束一个activity。系统掌管着activity的生命,所以你也不必结束自己的activity。使用上述方法会破坏用户体验。除非你觉得很必要时,否则就不要做!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: