android Thread 停止 开始 暂停

本文详细探讨了在Android中如何管理和控制Thread的生命周期,包括如何启动、停止和暂停线程,以及在Android应用开发中处理线程操作的最佳实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.example.thread;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {
	 int r=0;   
	 Button bt;
	 Button bt1;
	 Button bt2;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		bt=(Button)findViewById(R.id.button1);
		bt1=(Button)findViewById(R.id.button2);
		bt2=(Button)findViewById(R.id.button3);
		Thread1 t = new Thread1();  
        Thread c = new Control(t);  
        t.setSleep(true);  
        c.setDaemon(true);     
        t.start();  
        c.start();  
		bt.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				r=2;
			}
			
		});
		bt1.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				r=0;
			}
			
		});
		bt2.setOnClickListener(new OnClickListener(){

			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				r=1;
			}
			
		});
		
	}

	

	class Thread1 extends Thread {  
	    private boolean isSleep = true;  
	    private boolean isStop = false;  
	      
	    public void run() {  
	        while(!isStop) {  
	            if(isSleep) {  
	                try {  
	                    Thread.sleep(1);  
	                } catch (InterruptedException e) {  
	                    e.printStackTrace();  
	                }  
	            } else {  
	                System.out.println("Thread: "+Thread.currentThread().getName() + " 运行中.");  
	                try {  
	                    Thread.sleep(2000);  
	                } catch (InterruptedException e) {  
	                    e.printStackTrace();  
	                }  
	            }  
	        }  
	        System.out.println("Thread: "+Thread.currentThread().getName() + " 结束.");  
	    }  
	      
	    public void setSleep(boolean sleep) {  
	        this.isSleep = sleep;  
	    }  
	    public void setStop(boolean stop) {  
	        this.isStop = stop;  
	    }  
	}  
	class Control extends Thread {  
	    private Thread1 t;  
	    public Control(Thread1 t) {  
	        this.t = t;  
	    }  
	      
	    public void run() {  
	        while(true) {  
	            if(r == 0) {  //r=0运行
	                t.setSleep(false);  
	            } else if(r == 1) {  //r=1暂停
	                t.setSleep(true);  
	            } else if(r == 2) {  //r=2 停止
	                t.setStop(true);  
	            }  
	        }  
	    }  
	}  
}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值