android activity 相关

来源:互联网 发布:安卓 java远程调用 编辑:程序博客网 时间:2024/05/22 02:29

activity是拥有界面用户可以交互的组件。

      应用一般由多个activity组成,他们之间有松散的连接一起。通常,会有一个主activity,它在应用启动后第一个显示。一个activity可以启动

另一个去实现不同的行为。系统用一个栈管理activity,当一个activity启动时,会将它置到栈顶,获得系统焦点,先前的就停止了。它遵守栈的后进先出原则,获得系统焦点的activity销毁后,上一个activity就会恢复。当activity的状态发生改变时,系统就会调用它的一些回调函数做出响应

 I    创建activity

      你必须创建activity的子类,重写activity一些回调函数,当activity的状态发生改变时,系统会调用相应的回调函数。下面是两个最重要的函数

onCreate()    你必须实现这个函数。但你创建一个activity时系统就会调用这个函数,初始化你activity组件。最重要的是,你必须调用

setContentView()为activity的用户接口定义布局。

onPause()     当这个activity失去用户的焦点,系统将调用这个函数。(并不意味这个activity被销毁了)

 

      实现人机交互接口

视图结构提供了activity的人机用户接口 ,他们派生于View类,每个view控制一个矩形区域,响应用户操作

      widget提供button, checkbox, image

      Layout提供组建的布局

 

II      启动一个activity

通过startActivity()(传给它可以匹配后者的intent)启动另外一个activity,

你可以启动一个指定class名的activity如你要启动的activity的class名为demoActivity

Intent intent = new Intent(this, demoActivity.class);
startActivity
(intent);

当然也可以让intent(描述某种行为隐示intent)携带额外某些信息去给下一个activity如:

Intent intent = new Intent(Intent.ACTION_SEND);
intent
.putExtra(Intent.EXTRA_EMAIL, recipientArray);
startActivity
(intent);

 

recipientArray为你想转递的数据。

 

III     启动可以返回结果的activity

       使用 startActivityForResult() 代替startActivity()去启动activity。为了接收下一个activity返回的结果

你必须在原activity中实现onActivityResult()回调函数。当一下activity完成,它将通过携带结果的intent返回到onActivityResult()。

IIII    关闭activity

        调用finish()关闭activity。也可以关闭之前启动的另外activity通过调用finishActivity().

注意  一般情况下,你不应该通过这些函数关闭指定的activity。系统会为你管理activity的生命周期。

 

管理activity生命周期

通过实现回调函数管理你的activity的生命周期对开发健壮的应用至关重要。它直接关系到其他activity,任务和栈

activity主要存在于三种状态:

1. resumed    activity在前台并取得系统焦点(相当于running)。

2. paused      另外的activity在前台并取得系统焦点,但这个activity以显示。这种状态主要在这种情况下

                     顶端的显示activity没有覆盖全屏幕,paused的activity可见的。但当内存低时会被杀掉

3. stopped    这个activity完全被另外一个activity遮盖,这个stopped的activity扔在内存中。

                     不在可见,也不附属与窗口管理器。

activity的生命周期

1.完整的生命周期, 调用 onCreate()onDestroy()之间

2.显示的生命周期, 调用onStart()onStop()之间

3.在前台的生命周期,调用 onResume() 和 onPause()之间

 

 

onPause(), onStop(), 和onDestroy是三个运行之后系统可以杀死这个进程

 

 

Ⅴ保存activity状态

。。。

。。。

。。。

。。。

。。。

 

Ⅵ 协调activity

当从一个activity启动另外一个activity时,它们有一个状态的转化。

如activityA启动activityB的转化步骤:

1.activityA 的onPause()

2.activityB的 onCreate(),onStart()和onResumed()

3.ifactivityA完全不可见,activityA还需调用onStop()

 

 

 

 

原创粉丝点击