通过实现Runnable接口来创建线程

àì夳堔傛蜴生んèń 2022-08-19 13:19 373阅读 0赞

1、布局文件

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent" >
  5. <Button
  6. android:id="@+id/button1"
  7. android:layout_width="wrap_content"
  8. android:layout_height="wrap_content"
  9. android:text="开启" />
  10. <Button
  11. android:id="@+id/button2"
  12. android:layout_width="wrap_content"
  13. android:layout_height="wrap_content"
  14. android:text="中断" />
  15. </LinearLayout>

2、MainActivity

  1. public class MainActivity extends Activity implements Runnable{
  2. private Thread thread;//声明线程对象
  3. int i;//循环变量
  4. @Override
  5. protected void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.activity_main);
  8. Button startButton = (Button)findViewById(R.id.button1);
  9. startButton.setOnClickListener(new OnClickListener() {
  10. @Override
  11. public void onClick(View v) {
  12. i = 0;
  13. thread = new Thread(MainActivity.this);//创建一个线程
  14. thread.start();//开启线程
  15. }
  16. });
  17. Button stopButton = (Button)findViewById(R.id.button2);
  18. stopButton.setOnClickListener(new OnClickListener() {
  19. @Override
  20. public void onClick(View v) {
  21. if(thread!=null){
  22. thread.interrupt();//中断线程
  23. thread = null;
  24. }
  25. Log.i("提示:", "中断线程");
  26. }
  27. });
  28. }
  29. @Override
  30. public void run() {
  31. while(!Thread.currentThread().isInterrupted()){
  32. i++;
  33. Log.i("循环变量",String.valueOf(i));
  34. }
  35. }
  36. @Override
  37. protected void onDestroy() {
  38. if(thread!=null){
  39. thread.interrupt();//中断线程
  40. thread = null;
  41. }
  42. super.onDestroy();
  43. }
  44. }

Center

发表评论

表情:
评论列表 (有 0 条评论,373人围观)

还没有评论,来说两句吧...

相关阅读