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