android多线程Handler

原创 2015年11月20日 11:46:43
package com.example.thread_1;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
	private Handler handler;
	private Button button1;
	private String result1 = null, result2 = null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button1 = (Button) findViewById(R.id.button1);
		//final RunClass runClass = new RunClass();
		button1.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {
				// TODO 自动生成的方法存根
				Run1();// //桐城市
				Run2();// /舒城

				//runClass.RunThread3();// /巢湖
				//runClass.RunThread4();// /庐江
			}
		});

		handler = new Handler() {

			@Override
			public void handleMessage(Message msg) {
				// TODO 自动生成的方法存根
				// super.handleMessage(msg);
				switch (msg.what) {
				case 1:
					if (result1 != null) {
						Log.i("result1", result1);
					}

					break;
				case 2:
					if (result2 != null) {
						Log.i("result2", result2);
					}
					break;

				default:
					Log.i("错误", "错误");
					break;
				}

			}

		};

	}// /onCreate

	public void Run1() {
		new Thread(new Runnable() {

			@Override
			public void run() {
				// TODO 自动生成的方法存根
				send1();
				Message m = new Message();
				m.what = 1;
				handler.sendMessage(m);

			}

		}).start();

	}

	// /
	private void send1() {
		// TODO 自动生成的方法存根 ////桐城市
		String target1 = "http://api.map.baidu.com/geocoder?output=json&location=31,117&key=Gl....";
		URL url1;

		try {
			url1 = new URL(target1);

			HttpURLConnection conn1 = (HttpURLConnection) url1.openConnection();

			BufferedReader buffer1 = new BufferedReader(new InputStreamReader(
					conn1.getInputStream()));
			String inputLine1 = null;
			while ((inputLine1 = buffer1.readLine()) != null) {
				result1 += inputLine1 + "\n";
			}
		} catch (MalformedURLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}

	}// /send

	public void Run2() {
		new Thread(new Runnable() {

			@Override
			public void run() {
				// TODO 自动生成的方法存根 ////舒城
				String target2 = "http://api.map.baidu.com/geocoder?output=json&location=31.3,117&key=Gl.....";
				URL url2;

				try {
					url2 = new URL(target2);

					HttpURLConnection conn2 = (HttpURLConnection) url2
							.openConnection();

					BufferedReader buffer2 = new BufferedReader(
							new InputStreamReader(conn2.getInputStream()));
					String inputLine2 = null;
					while ((inputLine2 = buffer2.readLine()) != null) {
						result2 += inputLine2 + "\n";
					}
					//Log.i("result2", result2);
					//
					// in_2.close();
					// conn_2.disconnect();
					Message m = new Message();
					m.what = 2;
					handler.sendMessage(m);
				} catch (MalformedURLException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}

		}).start();

	}

}

版权声明:本文为博主原创文章,转载请说明出处

相关文章推荐

android handler 多线程demo

Handler的定义:    主要接受子线程发送的数据, 并用此数据配合主线程更新UI。当应用程序启动时,Android首先会开启一个主线程 (也就是UI线程) , 主线程为管理界面...
  • gh102
  • gh102
  • 2012-01-10 11:02
  • 1127

Android 开发之多线程处理、Handler 详解

Android开发过程中为什么要多线程 我们创建的Service、Activity以及Broadcast均是一个主线程处理,这里我们可以理解为UI线程。但是在操作一些耗时操作时,比如I/O读写的大文件...

Android学习篇章40-Handler多线程基础

Mainactivity: public class MainActivity extends Activity { TextView prcTxt=null; @Override p...

Android——多线程(Handler机制)

Android的多线程技术,大致分两种:Handler机制和AsyncTask封装。在这里要提到一点,在Mainactivity中运行的是属于UI线程,1.UI线程运行界面 里面不能放耗时操作(耗时操...

Android多线程消息处理机制(三) Handler部分源码分析

此文一起来看下Handler的部分源码,不用怕很简单,有英文的地方我都翻译了。 把里面相关的方法过一眼,你瞬间会明白很多。高手就不用看了,去过你的荣华富贵花天酒地。 我一致认为,想学好某一技术,首先是...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)