MainActivity.java
package com.jkxy.androidactivity; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.button).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //一、线程阻塞 //主线程也就是UI线程,就是跟群众面对面交流的地方,所以,如果有线程阻碍,或者耗时的动作的话,就会影响用户的体验 //执行下面的代码,点击按钮,会明显感觉到按钮的卡顿现象。 // 解决方法就是,启动多线程,那怎样启动多线程呢,可以这样 new Thread(){ // @Override // public void run() { // super.run(); // } // }.start();在新线程中执行耗时操作。 // try { // Thread.sleep(6000); // System.out.println(">>>>>>>>>Tick"); // } catch (InterruptedException e) { // e.printStackTrace(); // } new Thread(){ @Override public void run() { super.run(); while (true){ try { Thread.sleep(3000); System.out.println(">>>>>>>>>Tick"); } catch (InterruptedException e) { e.printStackTrace(); } } } }.start(); //二、可以看到,当点击按钮的时候,按钮会马上弹起来,后台线程在一直执行。没有卡顿现象了。 } }); } }
布局文件如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.jkxy.androidactivity.MainActivity" android:weightSum="1"> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button" android:layout_weight="0.59"/> </LinearLayout>