HandlerThread 继承了 Thread,它是一种可以使用 Handler 的 Thread。
public class MainActivity extends AppCompatActivity { private HandlerThread mHandlerThread; private Handler mHandler; private boolean isUpdateData; private static final int MSG_UPDATE_DATA = 0x110; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initBackThread(); } @Override protected void onResume() { super.onResume(); isUpdateData = true; mHandler.sendEmptyMessage(MSG_UPDATE_DATA); } @Override protected void onPause() { super.onPause(); isUpdateData = false; mHandler.removeMessages(MSG_UPDATE_DATA); } private void initBackThread() { // 创建并启动 HandlerThread mHandlerThread = new HandlerThread("update data"); mHandlerThread.start(); // 创建 HandlerThread mHandler = new Handler(mHandlerThread.getLooper()) { @Override public void handleMessage(Message msg) { Log.d("Guu", String.valueOf(Math.random() * 300 + 100)); if (isUpdateData) { mHandler.sendEmptyMessageDelayed(MSG_UPDATE_DATA, 1000); } } }; } }