android多线程,在方法中执行

原创 2015年11月20日 11:37:41

主类:

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);
				if (result1 != null) {
					Log.i("result1", result1);
				}


			}


		};


	}// /onCreate


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


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


			}


		}).start();


	}
///
	private void send1() {
		// TODO 自动生成的方法存根 ////桐城市
		String target1 = "http://api.map.baidu.com/geocoder?output=json&location=31,117&key=GlFh.......";
		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=GlFh......";
				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();


				} catch (MalformedURLException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
			}


		}).start();


	}


}

另一个类:

<pre name="code" class="java">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.Message;
import android.util.Log;

public class RunClass extends Activity {
	private String result3 = null, result4 = null;
	
	public void RunThread3() {
		new Thread(new Runnable() {

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

			}

		}).start();

	}
	///
	private void send3() {
		// TODO 自动生成的方法存根////巢湖市
		String target3 = "http://api.map.baidu.com/geocoder?output=json&location=31.9,117.8&key=Gl.....";////需要自己申请
		URL url3;

		try {
			url3 = new URL(target3);

			HttpURLConnection conn3= (HttpURLConnection) url3
					.openConnection();

			BufferedReader buffer3 = new BufferedReader(new InputStreamReader(conn3
					.getInputStream()));
			String inputLine3 = null;
			while ((inputLine3 = buffer3.readLine()) != null) {
				result3 += inputLine3 + "\n";
			}
		 Log.i("result3", result3);
			//
			// in_2.close();
			// conn_2.disconnect();

		} catch (MalformedURLException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		} catch (IOException e) {
			// TODO 自动生成的 catch 块
			e.printStackTrace();
		}

	}// /send_2
	
	
	public void RunThread4() {
		new Thread(new Runnable() {

			@Override
			public void run() {
				// TODO 自动生成的方法存根
				//send_3();
				//Message m = new Message();
				//handler.sendMessage(m);
				// TODO 自动生成的方法存根    ////庐江县
				String target4 = "http://api.map.baidu.com/geocoder?output=json&location=31.45,117.24&key=GlF.....";
				URL url4;

				try {
					url4 = new URL(target4);

					HttpURLConnection conn4 = (HttpURLConnection) url4
							.openConnection();
					BufferedReader buffer4 = new BufferedReader(new InputStreamReader(conn4
							.getInputStream()));
					String inputLine4 = null;
					while ((inputLine4 = buffer4.readLine()) != null) {
						result4 += inputLine4 + "\n";
					}
				 Log.i("result4", result4);
					//
					// in_2.close();
					// conn_2.disconnect();

				} catch (MalformedURLException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				} catch (IOException e) {
					// TODO 自动生成的 catch 块
					e.printStackTrace();
				}
				
			}

		}).start();

	}
	///
	
	
	
	
}



加上网权限:   

 <uses-sdk
        android:minSdkVersion="15"
        android:targetSdkVersion="16" />
   <uses-permission android:name="android.permission.INTERNET"/>

结果:结果有四个,这里只写出一个了,


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

Android游戏开发:如何利用Thread与Handler执行多线程的方法

Android游戏开发之Thread与Handler执行多线程 游戏开发与软件开发多线程的重要性 如果程序主线程被阻塞超过5秒,系统会提示“应用程序无响应” 这就是ANR 。 ANR的全称是App...

多线程执行指定名称方法 Java

  • 2012年09月14日 16:02
  • 5KB
  • 下载

android的多线程与界面交互的方法

使用线程处理 耗时比较长的“业务” 1.Activity.runOnUIThread(Runnable) 2.View.post(Runnable),View.postDelay(Runnable,l...

java4Android(17)(18) 多线程两种实现方法

如何定义一个线程类,进入到线程等待状态 例子:class FirstThread extends Thread { public void run() { for(i...

Android Greendao+多线程断点续传(方法一)

1、在app的Gradle中配置:apply plugin: 'org.greenrobot.greendao'dependencies { compile 'org.greenrobo...

Android下的JNI创建多线程的方法

本文参考了http://www.cnblogs.com/lknlfy/archive/2012/03/16/2400786.html这篇博文,加了点自己的东西 废话不多说,贴代码上来 java的代码:...

android 创建多线程的几种方法

原文地址:http://www.cnblogs.com/gw811/archive/2012/10/15/2724882.html

android的AsyncTask使用方法-多线程下载

public class MainActivity extends Activity implements OnClickListener { private Button btn1, btn2, ...
  • yhm2046
  • yhm2046
  • 2013年12月05日 01:03
  • 1553

android多线程的实现方法

一、单线程模型   当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理与UI相关的事件,如:用户的按键事件,用户接触屏幕的事件以及屏幕绘...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android多线程,在方法中执行
举报原因:
原因补充:

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