• [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);
    }
    }

  • 相关阅读:
    Kettle使用介绍——Kettle的安装与基本使用
    Every Tom,Dick and Harry. 不管张三李四。
    AOP
    Redis 常用命令学习一:通用的基本命令
    Python 解LeetCode:23. Merge k Sorted Lists
    Python 解LeetCode:33. Search in Rotated Sorted Array
    Python 解leetcode:48. Rotate Image
    小米Python后端面试题
    Python 解leetcode:49. Group Anagrams
    Python 解leetcode:3. Longest Substring Without Repeating Characters
  • 原文地址:https://www.cnblogs.com/webapplee/p/3771866.html
Copyright © 2020-2023  润新知