一、
程序入口
J2me
程序入口类为 MIDlet
,所有的 j2me
程序都要继承该类来初始化 j2me
程序。 Android
程序入口是 Activity
类。下面先看看她们的生命周期。
J2me MIDlet
生命周期
1
、
startApp
(活动状态)程序启动的时候会调用该方法来初始化用户需要的资源。
2
、
PauseApp
(暂停状态)当手机来电接电话的时候,会调用该接口。用户可以调用该接口停止也写线程的操作。
3
、
destroyApp
(销毁状态)程序退出的时候调用。用户可以调用该接口处理处于活动状态的线程。
该几个周期状态有
AMS
调用转换,也可以程序代码调用转换。
resumeRequest
调用会的结果是
AMS
会调用
startApp
方法,
notifyPaused
调用的结果是可能
AMS
调用
PsuseApp
,
notifyDestroyed
调用会使
AMS
销毁该
midlet
。
Android Activity
生命周期
1
、
onCreate
程序开始初始化的时候调用该接口,用户导航返回到
Activity
的时候也会调用该接口。类似于
J2me
里面多个
Canvase(Displayable)
切换。所以
Activity
也类似于
Displayable
。
2
、
onStart onCreate
调用完后,程序调用该接口。
3
、
onResume onStart
调用后调用该接口。此时
Activity
进入运行状态。
4
、
onPause
新的
Activity
启动的时候调用该接口。
5
、
onStop
该
Activity
不可见的时候调用。
6
、
onDestroy
程序销毁的时候调用。
二、
显示组件
J2me
中所有可显示的组件都是直接或间接的继承了
Displayable
,直接的是
Canvas
和
Screen
。不同的继承导致了低级
UI
和高级
UI
的区别。
J2me
中现成的
UI
组件都是直接或者间接继承了
Screen
。只要调用
Display.getDisplay(MIDLet instan).setCurrrent(Displayable disp)
,就可以把组件显示到手机界面上。切换界面的时候也可以使用该接口。
Android
可见的组件直接或者间接继承了
android.view.View
。通过
Activity.setContentView(View view)
就可以显示在
android
手机界面上,切换界面的时候也可以使用该接口。如果是直接继承了
View
而不是
Android
自带的
UI
组件,那么还要自己去实现它的刷新,类似
J2me
的低级
UI
组件。
三、
刷新处理
J2me
刷新:
J2me
高级
UI
组件由组件内部刷新实现,低级
UI
可以通过
Canvas
的
repain()
来刷新。低级
UI
架构可以用
MVC
方式来实现,建议使用二级缓存。
Android
刷新:
Android
提供接口
onLayout
来提供该
View
调整其里面组件元素的位置布局,用户只需要重写该接口就
ok
。刷新接口
onDraw
,该接口用来刷新界面里面的绘制元素。该接口类似
j2me Canvas
的
paint
接口。不过两个平台传得参数有些意思。
J2me
传的时
Graphics
,而
android
传得是
Canvas
。
Android
绘制的时候会传入一个参数
Paint
。该对象表示绘制的风格,比如颜色,字体大小,字体格式等。如果是移植的话,建议
android
也使用二级缓存,这样也容易管理。
四、
用户事件处理
J2me
的键盘、触笔事件都是通过
Canvas
定义接口分发。用户只需要从写这些接口就
ok
。它们分别是。键盘接口为:
keyPressed(),keyRepeated(),keyReleased()
。触笔接口为:
pointerPressed(),pointerReleased(),pointerDragged()
。
Android
的键盘,触笔通过
View
中定义,只要
override
其接口就
ok
了。触笔处理接口
onTouchEvent
。软键盘
onKeyDown()
、
onKeyUp()
、
onTracKballEvent()
。