编程里,Android和J2ME有诸多有趣的对应和独特机制,下面就详细来探索一番。
Activity与MIDlet
Activity在Android里地位重要,它就像J2ME的MIDlet。一个Activity类能创建视窗,当它处于活动状态,就是前景模式。比如我们打开手机上的一个APP,正在操作的页面就是活动中的Activity。而背景运行程序叫Service,二者通过ServiceConnection和AIDL连结,像多个APP同时后台听歌、下载文件等,就能实现复数程序同时运行。
Activity的停止与清除
若运行中Activity全部画面被其他Activity取代,它会被停止,甚至被系统清除。比如我们打开很多APP,来回切换时,之前打开但很久没操作的APP的Activity就可能被系统处理。这是系统为了节省资源的机制,在内存紧张时,不太活跃的Activity就会被优先处理,确保系统流畅运行。
View与Displayable
View类似J2ME的Displayable,程序人员能借助View类与“XML layout”档把UI放到视窗上。在Android 1.5版本,还能用View打造Widgets。比如HTC的Android Hero手机,就有大量widget。Widget其实是View的一种,能用xml设计layout,方便开发者定制界面。
ViewGroup的特性
ViewGroup是各种layout的基础抽象类,里面还能包含ViewGroup。这就像套娃一样,层层嵌套。开发者可以根据需求灵活设计界面结构,让复杂的界面布局变得有序。例如设计一个包含多个子菜单、子页面的APP界面,就可以利用ViewGroup的特性来实现。
View的构造与获取
View的构造函数不用在Activity中调用,这和Displayable不同。在Activity里,要通过findViewById()从XML中取得View。Android的View类显示很大程度从XML读取。比如我们写一个APP界面,在XML里定义好各种View的属性和布局,然后在Activity中获取并显示。这样分离的设计让代码更清晰,开发更高效。
View与事件的结合
View和事件紧密相关,通过Listener结合。每个View都能注册event listener。比如当View要处理用户触碰事件时,就要向Android框架注册View.OnClickListener。当我们点击手机APP上的按钮,背后就是这种机制在起作用,让用户操作和界面响应无缝对接。
大家在开发Android应用时,有没有遇到过因为View和事件结合处理不当导致的问题呢?觉得这篇文章有用的话,欢迎点赞和分享。