简述表单资料传递的两种方式
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的启动流程等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)