嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

周梦康 发表于 2014-04-15 2850 次浏览 标签 : Android
package com.zhoumengkang.Thread01;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
	private TextView textView;
	private Button button;
	@Override
	//主线程在一个应用程序中,通常勇于接受用户的输入,以及将运算的结果反馈给用户
	//所以对于一些可能会产生租塞的操作,必须放在在Worker Thread当中,而在Worker Thread里面一般情况下不能访问UI的
	//这样Worker Thread 运行完的结果怎么反馈给 Main Thread?
	//Main Thread负责UI的,Worker ThreadF负责运算,那么这两者如何通信?
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		textView = (TextView)findViewById(R.id.textView);
		button = (Button)findViewById(R.id.button);
		button.setOnClickListener(new ButtonListener());
	}
	
	class ButtonListener implements OnClickListener{

		@Override
		public void onClick(View v) {
			Thread t = new MyThread();
			t.start();
		}
		
	}
	//Worker Thread
	//原则上来讲,在MainThread之外是不允许修改view里面的属性的。但是也有例外,比如ProgressBar
	class MyThread extends Thread{
		public void run(){
			try {
				Thread.sleep(1*1000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
			//04-15 11:06:06.790: E/AndroidRuntime(1085): android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
			//报错原因,因为在Worker Thread里面无法修由Main Thread 创建的textView对象。这里的错误与语法无法。
			textView.setText("来自于线程的修改");

		}
	}
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表