android hander 线程用法

		@Override
		public void onClick(View v) {
			lsh = "576";
			startdate = setstart_date.getText().toString();
			enddate = setend_date.getText().toString();
			btnLoginContext = v.getContext();
			HandlerThread handlerThread = new HandlerThread("handlerThread");
			handlerThread.start();// 启新线程
			MyHandler myHandler = new MyHandler(handlerThread.getLooper());// 建消息队列的处理器(新线程)
			Message msg = myHandler.obtainMessage();// 绑定自定义的处理器
			Bundle bundle = new Bundle();
			bundle.putString("startdate", startdate);
			bundle.putString("enddate", enddate);
			bundle.putString("lsh", lsh);
			msg.setData(bundle);
			msg.sendToTarget();
		}
@Override
		public void handleMessage(Message msg) {
			try {
				super.handleMessage(msg);

				Bundle bundle = msg.getData();
				if (bundle == null)
					return;
				String result = "";
				StringBuilder str = new StringBuilder();
				str.append("<condition><ksrqsj>" +  bundle.get("startdate").toString()+ "</ksrqsj>");
				str.append("<jsrqsj>" +  bundle.get("enddate").toString()+ "</jsrqsj>");
				str.append("<lsh>" +  bundle.get("lsh").toString()+ "</lsh></condition>");

				RequireParams params = new RequireParams();
				params.setMethodName("GetNurseTableinfoPag");
				WebServiceInvoker invoker = new WebServiceInvoker();
				invoker.setParams(params);
				//设置参数
				SoapObject request = invoker.getRequestInstance();
				request.addProperty("condition", str.toString());
				request.addProperty("recBegin", 0);
				request.addProperty("recEnd", 10);
				result = invoker.invokeWS(request).getProperty(0).toString();

				if (result.indexOf("error") >= 0) {
					showMyDialog(btnLoginContext, result);
					return;
				} else {
					List<Map<String, Object>> myNurseInfos = null;
					myNurseInfos = NurseInfo.getNurseInfo(result, "UTF-8");
					//查询成功
					Intent intent = new Intent();
					Bundle mybundle = new Bundle();
			        final SerializableMaplist myMap=new SerializableMaplist();
			        myMap.setMap(myNurseInfos);
					mybundle.putSerializable("listdata", myMap);
	                intent.putExtras(mybundle);
	                intent.setClass(getActivity(), NursingPageQuery.class);
	                startActivity(intent);
				}
			} catch (Exception e) {
				Log.e(TAG, Log.getStackTraceString(e));
				Toast.makeText(getActivity(),"错误:"+ Log.getStackTraceString(e),Toast.LENGTH_LONG).show();
			}

  

android hander 线程用法

时间: 2024-08-01 14:16:54

android hander 线程用法的相关文章

android 进程/线程管理(四)续----消息机制的思考(自定义消息机制)

继续分析handler 和looper 先看看handler的 public void dispatchMessage(Message msg) { if (msg.callback != null) { handleCallback(msg); } else { if (mCallback != null) { if (mCallback.handleMessage(msg)) { return; } } handleMessage(msg); } } 所以消息的处理分层三种,就是 1.传入一

Android的线程和线程池

原文链接,转载请注明出处 http://sparkyuan.me/2016/03/25/Android的线程和线程池/ 在Java中默认情况下一个进程只有一个线程,也就是主线程,其他线程都是子线程,也叫工作线程.Android中的主线程主要处理和界面相关的事情,而子线程则往往用于执行耗时操作.线程的创建和销毁的开销较大,所以如果一个进程要频繁地创建和销毁线程的话,都会采用线程池的方式. Android中线程的形态 传统的Thread AsyncTask HandlerThread IntentS

AsyncTask 异步线程 用法

AsyncTask介绍Android的AsyncTask比Handler更轻量级一些,适用于简单的异步处理.首先明确Android之所以有Handler和AsyncTask,都是为了不阻塞主线程(UI线程),且UI的更新只能在主线程中完成,因此异步处理是不可避免的.Android为了降低这个开发难度,提供了AsyncTask.AsyncTask就是一个封装过的后台任务类,顾名思义就是异步任务.AsyncTask直接继承于Object类,位置为android.os.AsyncTask.要使用Asy

android操作线程各种方法解析

(一)刚开始学习android的时候我是这么写的 1 new Thread( new Runnable() { public void run() { myView.invalidate(); } }).start(); 后来看到别的博客说这种违反android单线程模型 本人不理解非要刨根问题 那么它是怎么违反单线程模型的呢? 百度了一下找到了原因 如下 一个 Android 程序开始运行时,就有一个主线程Main Thread被创建.该线程主要负责UI界面的显示.更新和控件交互,所以又叫UI

Android WIFI 简单用法

随着Wifi的普及,在开发App的时候对wifi的考虑越来越多了.例如程序的升级在wifi下可以省很多流量,在通信软件中的视频通话.可以实现高画质的传输等等,Android提供了WifiManager类来帮助开发者们管理Wifi.下面就简单来说一下WifiManager的简单用法把. 权限: 为了使用WfiManager 我们需要在Androidmanifest.xml 加入权限: //本例中使用了前两个.具体请按照需要添加权限. <uses-permission android:name=&quo

Android multipartentity的用法

最近写一个程序,android手机端上传多个图片到asp.net服务器端,使用httpclient,在网上查到了使用multipartentity.上传测试时总是出现(500)Internal Server Error,最后查出原来是文件大小超出了服务器限制,在项目的web.config中添加: <system.web> <HttpRuntime maxRequestLength="409600"  executionTimeout="60" /&

Android之Fragment用法

本文翻译自Android developer网站上面,原文参考:Building a Dynamic UI with Fragments 当我们需要动态的多界面切换的时候,就需要将UI元素和Activity融合成一个模块.在2.3中我们一般通过各种Activity中进行跳转来实现多界面的跳转和单个界面动态改变.在4.0或以上系统中就可以使用新的特性来方便的达到这个效果--Fragment类.Fragment类似一个嵌套Activity,可以定义自己的layout和自己的生命周期. 多个Fragm

Android技术11:Android的线程模型

1.Android的单线程模型 在android应用程序启动时,Android会同时启动一个对应的主线程Main Thread.主线程主要负责处理UI方面的事件,所以又称UI线程.Android应用程序必须遵守单线程模型原则:androidUI操作不是线程安全的,并且这些操作必须在UI线程中完成.UI线程负责事件监听和绘图处理,因此必须保证UI线程能够随便响应用户,所以那些非常耗时的,必须放到其他线程中处理,如网络连接,数据库读取等操作,否超过一定时间没有响应,则应用程序就会终止. 2.消息队列

Android UI线程和非UI线程

UI线程及Android的单线程模型原则 当应用启动,系统会创建一个主线程(main thread). 这个主线程负责向UI组件分发事件(包括绘制事件),也是在这个主线程里,你的应用和Android的UI组件(components from the Android UI toolkit (components from the android.widget and android.view packages))发生交互. 所以main thread也叫UI thread也即UI线程. 系统不会为