我有一个基于GCM的应用程序,可以快速连续地将数据发送到手机。我通过广播接收器接收它,并根据收到的参数在ASYNCTASK中执行操作。
我的问题是假设 - 我第一次调用asynctask,它甚至没有达到doinbackground方法,并且第二次调用第一次Asynctask会被调用吗?
答案 0 :(得分:2)
这取决于Android版本。引用文档:
执行顺序
首次推出时,AsyncTasks 在a上串行执行 单背景线程。用DONUT开始,这被改为a 线程池允许多个任务并行运行。 从HONEYCOMB开始,任务在单个线程上执行,以避免因并行执行而导致的常见应用程序错误。
如果您真的想要并行执行,可以使用executeOnExecutor(java.util.concurrent.Executor, Object[])
调用THREAD_POOL_EXECUTOR
。
https://developer.android.com/reference/android/os/AsyncTask.html