zoukankan      html  css  js  c++  java
  • Android线程和handler

      根据视频仿照着写了个demo:

    package com.wyl.wylthreadtest;
    
    import android.graphics.Color;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.support.v4.app.Fragment;
    import android.support.v7.app.ActionBarActivity;
    import android.view.LayoutInflater;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.ViewGroup;
    import android.widget.Button;
    import android.widget.TextView;
    
    public class MainActivity extends ActionBarActivity {
    	TextView textView;
    	Button button;
    	Handler myhandler;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            textView = (TextView)findViewById(R.id.textViewId);
            button = (Button)findViewById(R.id.buttonId);
            myhandler = new myHandler();
            
            buttonListener listener = new buttonListener();
            button.setOnClickListener(listener);
        }
        /**
         * 添加button的onclick监听器
         * @author Administrator
         *
         */
        class buttonListener implements OnClickListener{
        	@Override
        	public void onClick(View view) {
    //    		textView.setText("我的女神");
    //    		textView.setTextColor(Color.GRAY);
    //    		System.out.println("buttonListener:"+Thread.currentThread().getName());
        		
        		myThread mythread = new myThread();
        		System.out.println("buttonListener:"+Thread.currentThread().getName());
        		mythread.start();
    //    		mythread.run();
        	}
        	
        }
        /**
         * 实现自己的一个线程,模拟从网络上获取数据然后传给handler
         * @author Administrator
         *
         */
        class myThread extends Thread{
        	String name = "模拟从网络上获取数据然后传给handler";
        	
        	@Override
        	public void run() {
        		try {
    				sleep(1*1000);
    			} catch (InterruptedException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
        		System.out.println("myThead 子线程"+Thread.currentThread().getName());
        		
        		
        		
        		Message msg = myhandler.obtainMessage();
        		msg.obj = name;
        		myhandler.sendMessage(msg);
        	}
        	
        	
        }
        
        
        /**
         * handler继承Handler父类
         * @author Administrator
         *
         */
        class myHandler extends Handler{
        	@Override
        	public void handleMessage(Message msg) {
        		System.out.println("myHandler:"+Thread.currentThread().getName());
        		String name = (String)msg.obj;
        		textView.setText(name);
        	}
        	
        }
    
        @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;
        }
    
        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            // Handle action bar item clicks here. The action bar will
            // automatically handle clicks on the Home/Up button, so long
            // as you specify a parent activity in AndroidManifest.xml.
            int id = item.getItemId();
            if (id == R.id.action_settings) {
                return true;
            }
            return super.onOptionsItemSelected(item);
        }
    
        /**
         * A placeholder fragment containing a simple view.
         */
        public static class PlaceholderFragment extends Fragment {
    
            public PlaceholderFragment() {
            }
    
            @Override
            public View onCreateView(LayoutInflater inflater, ViewGroup container,
                    Bundle savedInstanceState) {
                View rootView = inflater.inflate(R.layout.fragment_main, container, false);
                return rootView;
            }
        }
    
    }
    

      效果图如下:

  • 相关阅读:
    我今天能懂
    SpringMVC之RequestContextHolder分析
    idea只导入部分依赖
    idea中GitPush失败问题
    SpringBoot常用配置,引入外部配置文件信息,热加载
    idea的yml文件不识别问题
    SpringBoot介绍,快速入门小例子,目录结构,不同的启动方式,SpringBoot常用注解
    Java连接Redis,存储对象获取对象()byte和json),连接池
    Nginx的反向代理
    Nginx介绍,安装,配置
  • 原文地址:https://www.cnblogs.com/Sunnor/p/4669125.html
Copyright © 2011-2022 走看看