zoukankan      html  css  js  c++  java
  • [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);
    }
    }

  • 相关阅读:
    Js通用验证
    C#实现马尔科夫模型例子
    C# 生成pdf文件客户端下载
    Js跨一级域名同步cookie
    C#数据库连接池 MySql SqlServer
    关于Oracle row_number() over()的简单使用
    开发中mybatis的一些常见问题记录
    Java通过图片url地址获取图片base64位字符串的两种方式
    基于apache httpclient的常用接口调用方法
    通过jcrop和canvas的画布功能完成对图片的截图功能与视频的截图功能实现
  • 原文地址:https://www.cnblogs.com/webapplee/p/3771866.html
Copyright © 2011-2022 走看看