Activity。。。

来源:互联网 发布:rcd510密码破解软件 编辑:程序博客网 时间:2024/05/03 05:16

是什么?

 

(1)an application component

 

(2)可以有界面,用户可以交互。通常fill屏幕,也可不fill,而是float在其他window上

 

 

一个application可有多个activity,有一个为main,通常是app启动时present给用户的界面

 

每个activity都可以start另一个activity,同时旧activity被stop,但system 在“back stack”里preserve它

 

      当activity start时,push stack

      当activity stop时,pop stack -->> destroyed  -->> 前一个activity resume

 

 

callback

 

onCreate()

    必须implement之,setContentView(),你懂的

 

onPause()

    用户leave某activity时,可能没destroy,此时需要commit any 需要保存的 changes,因为可能不回来了

 

 

declare

 

必须在manifest里注册activity,system才能找到

 

<action android:name="android.intent.action.MAIN" />  程序入口,若有多个,选第一个

starting
startActivity
startActivityForResult -->> onActivityResult

shutting down
finish
finishActivity
    最好不要显示shut down一个activity,而是交给system处理

Activity Lifecycle
三种状态
    resumed :显示在屏幕上,也可称之为running
    paused :另一个activity显示,但是这个still visible(partially transperent 或 没cover整个屏幕),
                    completely alive,所有状态保存在memory中,window manager在管着,但随时可能被killed(memory用尽时...)
    stopped : 在background, still alive,window manager在管着,no longer visible to user
onCreate -------------------------entire
        onStart  --------------------visible
                onResume -----------foreground
                onPause
        onStop
onDestroy

 

保存activity state

 

onPause或onStop后,activity object还在内存中,activity返回后可以recover state

 

但activity object可能被kill掉,当系统没有资源时,这样的话,memory中的activity object没了, 之前做的changes也没了

 

所以,,,resume时,必须recreate整个activity才行

 

onSaveInstanceState() -->> destroy -->> onCreate(savedInstanceState)

 

通常在onStop或者onPause之前执行

 

但是,onSaveInstanceState不一定在会执行,比如用BACK key关闭时,因为用户显示关闭activity,就没有必要了

 

UI state : onSaveInstanceState()的默认实现里包含了对控件 widgets view ..状态的保存,但需要空间含有unique ID

 

 

需要persist的数据必须在onPause()中进行save,比如需要保存到数据库里的changes

 

 

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

生命周期

 

运行,暂停,停止

 

系统资源匮乏时,会结束掉暂停态、停止态的activity

 

 

原创粉丝点击