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

以上这篇Android 线程thread的两种实现方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java Thread多线程全面解析

    多线程是java中很重要的知识点,在此小编给大家总结Java Thread多线程,非常有用,希望大家可以掌握哦. 一.线程的生命周期及五种基本状态 关于Java中线程的生命周期,首先看一下下面这张较为经典的图: 上图中基本上囊括了Java中多线程各重要知识点.掌握了上图中的各知识点,Java中的多线程也就基本上掌握了.主要包括: Java线程具有五种基本状态 新建状态(New):当线程对象对创建后,即进入了新建状态,如:Thread t = new MyThread(); 就绪状态(Runnab

  • Java多线程继承Thread类详解第1/2页

    调用方法: /** * 点击量/月(年)Thread */ public void yearlyClickThread() { // 获取参数 String year = getPara("year"); // 统计数据集X List<String> xList = new ArrayList<String>(); xList.add("January"); xList.add("February"); xList.add

  • Android中断并重启一个Thread线程的简单方法

    这里简单的总结下(大概思路,没调试,可能会有错!): MyThread.java pulbic class MyThread implemets Thread{ @overide public void run{ while(!Thread.interrputed()){ } } } xxx.java Thread mThread = new MyThread(); public static void startThread(){ mThread = new MyThread(); mThre

  • Android 线程thread的两种实现方法(必看)

    这篇文章中有三点需要提前说明一下, 一:在android中有两种实现线程thread的方法: 一种是,扩展java.lang.Thread类 另一种是,实现Runnable接口 二:Thread类代表线程类,它的两个最主要的方法是: run()--包含线程运行时所执行的代码 Start()--用于启动线程 三: Handler 机制,它是Runnable和Activity交互的桥梁,在run方法中发送Message,在Handler里,通过不同的Message执行不同的任务. 下面分别给出两种线

  • Django 添加静态文件的两种实现方法(必看篇)

    Django添加静态文件有两种方法: 首先setting.py配置文件中添加静态文件的路径: STATICFILES_DIRS = [ os.path.join(BASE_DIR, "statics"),]  statices为你所建立的存放静态文件的文件夹名 然后进行引用. 1.html 文件中通过 /static/资源名的方式,就可以访问到资源 2.①html 文件头部填写  {% load staticfiles %},②路径填写  {% static 'css/xx.css'

  • Android 截取手机屏幕两种实现方法

    Android 截取手机屏幕两种实现方法 最近在开发的过程中,遇到了一个需要截取屏幕保存为图片的需求,具体为截取webview的视图保存图片. 方法1:首先想到的思路是利用SDK提供的View.getDrawingCache()方法: public void printScreen(View view) { String imgPath = "/sdcard/test.png"; view.setDrawingCacheEnabled(true); view.buildDrawingC

  • Android 通过ViewHolder优化适配器的实现方法(必看)

    Adapter类的定义: Adapter对象是AdapterView和底层数据见的桥梁.Adapter用于访问数据项,并且负责为数据项生成视图 AdapterView是一个抽象类,用于那些需要通过Adapter填充自身的视图,其常见子类是ListView.显示AdapterView时会调用Adapter的getView()方法创建并添加每个子条目的视图.Adapter的getView()方法就是用来创建这些视图的,Adapter并不会为每行数据都创建一个新视图,而是提供了回收旧视图的方法.运行机

  • MySQL错误Forcing close of thread的两种解决方法

    最近网站访问量大增,可能有些频道程序也有一些问题,造成了MySQL数据库出现Forcing close of thread 28790 user错误.如果遇到这种情况改怎么解决呢?icech找到两种方法来解决: 1.修改mysql配置文件 如果配置文件是my.ini,可以在在my.ini添加下面两条内容: skip-locking skip-name-resolve 注意:在新版本的mysql中,skip-locking已经被换成了skip-external-locking,如果使用skip-l

  • Android注册广播的两种方法分析

    本文实例分析了Android注册广播的两种方法.分享给大家供大家参考,具体如下: 1. 在AndroidManifest.xml文件中注册. 好处:一旦应用程序被安装到手机里,BroadCast Receiver就开始生效.无论应用程序进程是否运行,运用程序是否在开启状态下都可以接受到广播事件. <receiver android:name=".receiver.SMSReceiver" > <intent-filter android:priority="

  • Android之Intent附加数据的两种实现方法

    本文实例讲述了Android之Intent附加数据的两种实现方法.分享给大家供大家参考.具体如下: 第一种写法,用于批量添加数据到Intent: Intent intent = new Intent(); Bundle bundle = new Bundle(); //该类用作携带数据 bundle.putString("name", "林计钦"); intent.putExtras(bundle); //为意图追加额外的数据,意图原来已经具有的数据不会丢失,但ke

  • Android时分秒计时器的两种实现方法

    可能我们在开发中会时常用到计时器这玩意儿,比如在录像的时候,我们可能需要在右上角显示一个计时器.这个东西其实实现起来非常简单. 只需要用一个控件Chronometer,是的,就这么简单,我都不好意思讲述一下了. <Chronometer android:layout_width="wrap_content" android:layout_height="wrap_content" android:format="%s" android:id

  • Android 手机防止休眠的两种实现方法

    Android 手机防止休眠的两种实现方法 实现这一功能的方法有两种, 一种是在Manifest.xml文件里面声明. 一种是在代码里面修改LayoutParams的标志位. 具体如下: 1.在Manifest.xml文件里面用user-permission声明.代码如下: < uses-permission android:name="android.permission.WAKE_LOCK" > < /uses-permission > 这种方法,在安装ap

  • Android顶部状态栏透明化并释放空间的两种实现方法

    由于项目需求,需要将布局顶部放大状态栏的空间,类似这种 在网上搜索找到两种方法: if (Build.VERSION.SDK_INT >= 19){ WindowManager.LayoutParams localLayoutParams = mActivity.getWindow().getAttributes(); localLayoutParams.flags = (WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | localLayo

随机推荐