失败的原因大多是没有通知到页面,通知的操作是在子线程直接执行的
解决方法:
1,子线程发送数据到handler中进行更新
2,如果用的是Eventbus:
@Subscribe(threadMode = ThreadMode.MAIN)
总结
1.在主线程直接更新ui是可以的
2.需要另开线程处理数据以免阻塞UI线程,像是IO操作或者是循环,可以使用Activity.runOnUiThread();
3.如果需要传递状态值等信息,就需要使用Handler + Thread的方式;
4.如果是后台任务,像是下载任务等,就需要使用AsyncTask或者是eventbus或者其余的通知方式