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;
            }
        }
    
    }
    

      效果图如下:

  • 相关阅读:
    volley框架使用
    Insert Interval
    candy(贪心)
    Best Time to Buy and Sell Stock
    Best Time to Buy and Sell Stock III
    distinct subsequences
    edit distance(编辑距离,两个字符串之间相似性的问题)
    trapping rain water
    word break II(单词切分)
    sudoku solver(数独)
  • 原文地址:https://www.cnblogs.com/Sunnor/p/4669125.html
Copyright © 2011-2022 走看看