Android合理使用AsyncTask和Thread

    AsyncTask大概是Android开发人员最常用的线程类了, 使用方便, 可以更新UI. 但是过度使用、不合理的使用会出现"创建的AsyncTask不会执行的情况", 调试的时候会发现AsyncTask已经创建, 但是不会执行 #doInBackground 方法. 

    为什么? 

    因为AsyncTask存在一个线程池的机制, 大概容量是128, 同时运行的只能是5个, 剩下的需要排队等候.

    所以如果在开发中过度的使用耗时太久的AsyncTask, 就会出现有的AsyncTask不会立即执行的情况.

    

    这时候, 并不是所有的耗时任务都使用AsyncTask, 如果不需要更新UI, 可以使用Thread(示例代码如下). 或者使用Thread + Handler 更新UI. 

new Thread(new Runnable() {
	@Override
	public void run() {
		
	}
}).start();



    另外, 直接使用 new Runnable()是不行的, 因为Runnable运行在UI线程里, 还是会造成UI线程阻塞.

你可能感兴趣的:(AsyncTask不执行,怎么使用AsyncTask,AsyncTask机制)