我开发的
Android项目快结尾了。现在需要实现的是对Android程序生命周期的控制,所以我特别写了一个例子来查看Android的生命周期。方便在项目的工作。先看代码吧。超简单的代码就可以搞定一切。
~.y3[r�F3
)cC xjxV.@3package com.gggeye.android;
3GEYE-Y6^?l:[:jg
[;q;r D1h0`Y3import android.app.Activity;
3GEYE?'`4[#b!o,v
import android.os.Bundle;
@N)r
p7`3
D8qp!U_h,e5G3public class LifelineDemo extends Activity{
)O
P Sd.J3 protected void onCreate(Bundle icicle ){
3GEYE4Ez�Go1Wb
super.onCreate(icicle);
GZ*V"c�uohp3 Logger.info("onCreate.");
A~ uv$f9rc"w3 }
3GEYE`5{I!tyq,\O1[
`V
GIa"Bu)L3 protected void onStart(){
3GEYE/o2`jHhF$B
super.onStart();
l)]T+~5Am3 Logger.info("onStart.");
J]5xC,KA~3
3BtL:[4j!mX4l&z(L.Q3 }
dxq#}!K3
tf(j?"P3 protected void onRestart(){
;`:S8ddd3Y3 super.onRestart();
3GEYEIS;a1hH[!|c2x
Logger.info("onRestart.");
3GEYE.A(M1`}F#V[#Hjf
3GEYEFY,_5O7U\,_2Az
}
3GEYE7}
\~u)d
3GEYE4R:I!e#{+h
g!Jc
^j
protected void onResume(){
w*si�]5?7sd�|~]!s3 super.onResume();
g4?g]$uS4u
WG3 Logger.info("onResume.");
/JTs_#Jt3 3GEYE{`+n\[)t3m1{@
}
3GEYE9~$[3\
f8mV&t~
{-SNjU)k3 protected void onFreeze(Bundle outIcicle){
;A4i$Fk;zh0l3 super.onFreeze(outIcicle);
j|'a`B;d3 Logger.info("onFreeze.");
3GEYE}|"e X
Zw
ka\
b@�L-HRzm}0ZI3 }
8f8JVabWIR33GEYE0B8fvJ;G\
protected void onPause(){
F_%g@7O_Cy_Y3 super.onPause();
0tm0vobV�]-?5T3 Logger.info("onPause.");
0v+f,]M T UcP-E3 3GEYEk3~M l Z#K
}
Hbc4y"Zd
[33GEYEBi-|qvf.^
protected void onStop(){
3GEYE�UV9Y.O7O'Nm
super.onStop();
3GEYE4k1G!]1J f*m4emt
Logger.info("onStop.");
3GEYEw ? [DP^/c�z.`"l
yTu)P8gv3 }
&s
B6?'~(`'N"KEc33GEYE3ijoY/l;@st
?i
protected void onDestroy(){
7vq3cOl:K3 super.onDestroy();
"QyyC{:J]g3 Logger.info("onDestroy.");
3GEYEM4`7WF c
x%ZtG%OK$H[D*d&A3 }
gqn(uZ M+z.n�uj#Wq33GEYE-R$eF+oL(^d5J^
}
3GEYEc0y;rSy%o8D,MEu
4K y1x'mNf)B3我们只需要在各个生命周期的时候调用,然后查看下他的日子输出就OK了。下面看看结果吧。
Rvz$O"gI31.点击Run,启动Android
(D'_RG9`0?I3从日志就可以看出Log的痕迹。至于不会查看日志的,建议到本站搜索下关于Android 日志的查看方法。
i5j-Yj[ x2p8jB*X4GG3点Run的时候,可以查看到
'YVEf I%R3e3OnCreate
D],i"_G3OnStart
3GEYE~I6DH3T,f6sI3?2r*G2{
onResume的日志。
Q$R"]d.x_3W3上面三个方法就相当于J2ME的startApp的一个方法。
3GEYE3Q||/igJj8cd
至于为什么onResume会在启动中执行,我感到有些意外,查看下APIs文档
+P7zJ3FW}b'gi3查看了下APIs说onResume与onFreeze方法是相互影响的,
9\"t9Zq
l3
2@p
@;R�q'l3二。当你点击Home键的时候
3GEYE|�TIO+WZ
可以看到
3GEYEIe5cC%l%r
iE
onFreeze
3GEYE+Ma8FsPC&wi
e
onPause
k5QYd8g3onStop
[I/Z#?
?`4VZP8k_:p(R3上面的程序就是通知Android处于停止状态,也就是相当于J2ME pauseApp方法
nxO.gPoV'a3
S5pF!l*]a/p3W3三。点击Android模拟器的关闭键可以看到
3GEYE-YY6j2?,w?!Gg_
onPause
0kVZOr9t3onStop
"~Wf~vo6Fj3onDestory
3GEYEWk-[U`
上面三个方法结合就相当于J2ME的destroyApp
8v'c*fuLh3
D+N7Fvqugi3四。Pause 过后,再点击软件图标
8UE9Vm]3会出现
3aI6j7^?c
A~3onRestart
3GEYE.scw+N5pUu6N
onStart
7G2~t.c'iG3onResume
3GEYEGo{5s Tv
m,u
上面的方法就是恢复程序的意思。在J2ME来说有没有对于的方法呢。应该就是startApp吧,不过要自己去判断是否是第一次启动,还是Restart了。
dm8U:lkl0vu&U7x33GEYEIF(^;Qv
看来Androiod开发确实不如J2ME简单。
3GEYE8Kz,u(X3V;g]