HandlerThread 使用实例

来源:互联网 发布:阿里巴巴北京总部 知乎 编辑:程序博客网 时间:2024/06/06 03:02

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);                }            }        };    }}
原创粉丝点击