Andorid App 一些机制对比
andorid
|
desktop
|
web
|
|
listview
|
原始的数据,item的回调展示,动作的响应返回的数据
是要adapter来维护。
感觉就是把delphi里由控件自己完成的代码,
剥离了出来自己来实现。
类似与customdraw。
|
row-caption
column
listitem
add listitem
|
table
row
<tr><td></td></tr>
TDateTable中
"aoColumns": [
data[0]:]
|
Fragment
|
|||
broadcast
|
消息是发到一个接收器上的。
系统广播接收
和自定义的全局接收应该一样的。
自定义消息
消息id
Intent intent = new Intent("com.xxz");
发送
全局广播
sendBroadcast(intent)
本地广播--先要实例化一个LocalBroadcastManager
localBroadcastManager.sendBroadcast(intent);
接收
全局广播
注册一个接收器关联处理类,处理消息ID
静态注册
<receiver
android:name=".MyBroadcastReceiver"
<intent-filter>
<action android:name="com.xxx"/>
</intent-filter>
动态注册-registerReceiver(receiverclass, filter)
和系统广播注册一样的?
本地广播
不能通过静态注册 。 动态注册localBroadcastManager.registerReceiver(
localReceiver, intentFilter);
处理类
extends BroadcastReceive
OnReceive override
这里有个有序广播概念。
由哪个接收器先处理。
|
android 还分广播和消息两种的。。。
|
|
message
|
用于内部传递。
消息结构
messageid--随意取一个数值。
消息发送
handler.sendMessage(message)
这里接收对象是处理函数的handler.发送之前就已经传递过来。
消息处理
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case xxx:
dosomething.
}
这种没有使用了消息的框架,匿名消息?
直接编写处理代码。
previewHandler.post(new Runnable() {
@Override
public void run() {
previewView.setSupportPreviewTxvVisibility(View.VISIBLE);
}
});
|
消息是发到某个窗口的。
消息发送
PostMessage-把调用要求放在等待队列(消息队列)
Sengmessage-要执行完映射函数才能执行下一步。
(handle--接收对象
BroadCast--广播消息
所有程序都能收到??
messageid,--WM_User+xx ,自定义编号。
param1,parame2)
当handle为广播时,要先注册RegisterWindowMessage( 'MyMessageMe')
消息处理
wndproc(message) override;
{
if message.msg=id_xx
{do something
message.msg.result=xx 返回值。
}
inherited WndProc( Message)
}
像一种系统级的接口函数。
按接口的定义实现。 随时,随地都能调用到处理函数。
真是很强大。
‘消息映射的实质是A对B的一种函数调用,是一种跨对象的函数调用’
|
|
Intent--感觉是一种通用的交互对象。
即可以是字符串
也可以是类。
很多函数都是传递这个对象。
|
|||
总体流程
|
可以继承Application类。然后manifest中指定。
<application
android:name=".Application.PanoramaApp"
操作一些全局性的东西
类似于delphi,在工程启动类里执行操作。
自动回收机制,程序完全退出很复杂。
https://blog.csdn.net/totond/article/details/72960211
主页面点返回键虽然触发ondestroy()。但进程还在的。
|
||
窗口
活动周期
|
创建阶段
建立-onCreate
显示出来-onResume ,有点像onFormShow().
销毁
切换阶段
onstop
onstart
一种是整个App切换出去
一种是当前页面切换出去
系统自带的功能键的处理。
home键-触发当前activity的onstop.
back键-关闭当前activity,返回上一activity
|
||
事件响应
|
点击事件
长按
双击
一次点击分好几个阶段
按下
放开
多点触控
键盘事件
home
back
事件关联。
1.直接在xml布局里onclick="xxaction";
2.class里setListener({});
声明元素,获得该元素,赋予事件行为
元素的类名和布局xml中的类型名是一致的。
|
||
运行结构
|
编写在某个系统。
运行在android系统
|
编写,运行全都在同一系统层。
|
编写在某个下系统
运行在web服务器下。
展现在浏览器下。
|