简述表单资料传递的两种方式

简述表单资料传递的两种方式,第1张

简述表单资料传递的两种方式

GET POST

1 get是从伺服器上获取资料,post是向伺服器传送资料。

2 get是把引数资料伫列加到提交表单的ACTION属性所指的URL中,值和表单内各个栏位一一对应,在URL中可以看到。post是通过> url中通过传引数来传递资料

用form表单提交资料

我知道的就这么多了

Android 页面之间资料传递方式有几种

1如果页面之间有直接关系,如Activity和在它之内的Fragment,可以直接通过介面的呼叫来传递资料。优势:直接,方便。 劣势:程式码耦合性较高

2如果是两个Activity之间传递资料,有介面切换的过程的话,可以用startActivity

或startActivityForResult。用其中的intent引数携带资料。优势:一般用于初始化Activity和呼叫系统功能

4如果页面之间传递资料没有页面切换的过程,可以通过广播的方式,sendBroadcast(intent);

要接受资料的页面注册这个广播就行了。

优势:程式码耦合性低,易重构,适用范围广。缺点:资料需要序列化和反序列化,程式码较多

4通过储存介质来分享资料,如页面A将资料存入资料库,SharedPreferences

,档案,Inter。页面B通过读取它们来得到资料

优势:资料储存时间长,不受到介面生命周期的影响 缺点:读取速度较慢,需要非同步 *** 作

5。采用事件汇流排的方式,注册和接收事件(资料),其中的代表者是EventBus,页面需要指定和注册接收事件的型别

优势:不用序列化资料,适用范围大 缺点:需要学习使用。

winform资料传递

参见

:wenkubaidu/view/320a7b4de518964bcf847ced

添加流程变量

1、在启动流程实例时,可以添加流程变量

1) 在启动流程实例时,通过重载startProcessInstanceByKey的方法可以加载流程变量。

2) 第二个参数要求是Map<String ,Object>类型,可以添加多个流程变量。

3) 这段代码执行完,会在数据库表act_ru_variable中添加两行记录。

2、在办理任务时,任务办理完成后,要传递一些信息到系统中。这个时候可以利用TaskService这个类来添加流程实例。public void setVar() throws Exception { String processInstanceId = "1901"; Task task =taskServicecreateTaskQuery()taskAssignee("manager")processInstanceId(processInstanceId )singleResult();// String taskId / 在办理过程中设

说明:

1) 利用setVariables方法在任务办理过程中添加一批流程变量。

2) 利用setVariable方法在任务办理过程中添加一个流程变量。

3) TaskService有一个重载 complete方法

3、执行流程实例时直接在Execution上设置流程变量

获取流程变量可以通过runTimeService的方法来获取流程变量。

说明:流程变量是从act_ru_variable这个表中读出来的。

开发中我们会调用startActivity来启动一个Activity,最终会调到 startActivityForResult

Instrumentation 是Android系统里面的一套控制方法或者“钩子”。这些钩子可以在正常的生命周期(正常是由 *** 作系统控制的)之外控制Android控件的运行。

Application和Activity的所有生命周期中,都会先调用Instrumentation提供的相应方法(如callActivityOnCreate,callApplicationOnCreate,newActivity,callActivityOnNewIntent)

InstrumentationexecStartActivity

ActivityTaskManagergetService()返回了一个IActivityTaskManager,拿到的是ATMS的代理对象,跨进程调用了ATMS的startActivity方法。

ActivityStarterstartActivityMayWait

ActivityStarter中做了一系列的调用(收集Intent信息,处理startActivityForResult,做一些校验判断等),最终进入startActivityUnchecked。

startActivityUnchecked

startActivityUnchecked中处理了关于Activity启动模式的处理,接着真正的resume我们的Activity

这里会先判断应用进程是否创建,创建了就进入 realStartActivityLocked ,没创建就会调用 ActivityManagerInternalstartProcess

①热启动realStartActivityLocked

接着看ActivityThread中接收并处理消息的handleMessage

前面realStartActivityLocked方法中通过addCallback,传入参数LaunchActivityItem。executeCallbacks方法中取出callbacks集合中的LaunchActivityItem,并调用其execute方法

handleLaunchActivity

②冷启动创建应用进程ActivityManagerInternalstartProcess

ActivityManagerInternal的实现类是AMS中的LocalService,AMS通过Socket与Zygote通信,fork出App进程,app进程创建后,会执行ActivityThread的main方法(Android进程入口方法)

调用ActivityThread的attach

[4]threadbindApplication 这是一个binder通信的过程

ActivityThread内部的Handler接收到BIND_APPLICATION消息

回到上面attachApplicationLocked的mAtmInternalattachApplication,调用ATMS的attachApplication

看到了似曾相识的realStartActivityLocked,后面流程和之前一样。Activity启动流程分析完毕。

总结

1)与Activity管理有关的类:

ActivityRecord :历史栈中的一个条目,代表一个Activity

TaskRecord :内部维护了一个ArrayList<ActivityRecord> ,来保存ActivityRecord

ActivityStack :内部维护了一个ArrayList<TaskRecord>,用来管理TaskRecord

ActivityStackSupervisor :用来管理ActivityStack的

2)Activity启动流程

activiti中内嵌子流程(call activity)是新启动一个流程,该子流程和父流程没有父子关系。该子流程的proc_inst_id_的parent_id_是空的。如果想要获取父流程的proc_inst_id_,可以通过执行环境(id_)和父执行环境(super_exec_)来获取。上述字段都是act_ru_execution表中。

配置子流程start监听器,监听器中去获取父流程实例ID

表中第三条记录是流程实例ID为 2830018 ,执行环境ID为 2830018 的子流程记录。该记录的父执行环境ID为 2830016 ,通过父执行环境ID定位到第二条记录,从而获取父流程实例ID 2830001

Get Parent ProcessInstance Id from a SubProcess CallActivity

以上就是关于简述表单资料传递的两种方式全部的内容,包括:简述表单资料传递的两种方式、activiti 怎么获取变量、Activity的启动流程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9538790.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存