• [Android]Thread两种实现方法


    一:

    在android中有两种实现线程thread的方法:

    一种是,扩展java.lang.Thread类
    另一种是,实现Runnable接口

    二:
    Thread类代表线程类,它的两个最主要的方法是:
    run()——包含线程运行时所执行的代码
    Start()——用于启动线程

    三:

    Handler 机制,它是Runnable和Activity交互的桥梁,在run方法中发送Message,在Handler里,通过不同的Message执行不同的任务。

    下面分别给出两种线程的实现方法,其一,扩展java.lang.Thread类,也就是把run()方法写到线程里面:

    package com.my;
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    public class Demo_For_Copy extends Activity
    {
    public Button button;

    public Handler mHandler=new Handler()
    {
    public void handleMessage(Message msg)
    {
    switch(msg.what)
    {
    case 1:
    button.setText(R.string.text2);
    break;
    default:
    break;
    }
    super.handleMessage(msg);
    }
    };

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    button=(Button)findViewById(R.id.button);

    Thread thread=new Thread(new Runnable()
    {
    @Override
    public void run()
    {
    Log.e("1111", "111111111");
    // TODO Auto-generated method stub
    Message message=new Message();
    message.what=1;
    mHandler.sendMessage(message);
    }
    });
    thread.start();
    }
    }

    其二,实现Runnable接口,让类实现Runnable接口,然后把run方法单独提出来:

    package com.my;
    import android.app.Activity;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.LinearLayout;
    public class Title_Change_Demo extends Activity implements Runnable
    {
    public Button button;
    public LinearLayout my_layout;

    public Handler mHandler=new Handler()
    {
    public void handleMessage(Message msg)
    {
    switch(msg.what)
    {
    case 1:
    button.setText(R.string.text2);
    break;
    default:
    break;
    }
    my_layout.invalidate();
    super.handleMessage(msg);
    }
    };

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    button=(Button)findViewById(R.id.button);
    my_layout=(LinearLayout)findViewById(R.id.my_layout);

    Thread thread=new Thread(this);
    thread.start();
    }

    @Override
    public void run()
    {
    Log.e("ok", "111111111");
    // TODO Auto-generated method stub
    Message message=new Message();
    message.what=1;
    mHandler.sendMessage(message);
    }
    }

  • 相关阅读:
    学习进度条博客(软件工程)第一周
    随机产生30个两位数的四则运算(包括真分数的计算)
    构建之法阅读笔记01
    感想
    《构建之法》阅读笔记04
    团队冲刺第二天
    第八周学习进度条
    团队冲刺第一天
    第七周学习进度条
    课堂测试03
  • 原文地址:https://www.cnblogs.com/webapplee/p/3771866.html
Copyright © 2020-2023  润新知