我在我的android應用程序中使用AsyncTasks。Android AsyncTask問題:doInBackground不執行
當我必須通過BroadcastReceiver
設置一個Service
(AlarmManager)並退出應用程序並重新打開應用程序時,AsyncTask纔會執行。
我該如何解決這個問題?我認爲有一些線程或任務沒有完成,導致這種問題。
我在我的android應用程序中使用AsyncTasks。Android AsyncTask問題:doInBackground不執行
當我必須通過BroadcastReceiver
設置一個Service
(AlarmManager)並退出應用程序並重新打開應用程序時,AsyncTask纔會執行。
我該如何解決這個問題?我認爲有一些線程或任務沒有完成,導致這種問題。
這可能是因爲從Honeycomb(以及之前的甜甜圈)AsyncTask's在單個線程上被串行執行。你有沒有其他長期運行的AsyncTasks可能會阻塞新的?
是的,我有,我找到了答案!我只是這樣做: [code] authenticationTask = new AuthenticationTask(this,String.valueOf(representante.getCodigo()),representante.getSenha(),PedMobileUtils.decrypt(representante.getSenha())); \t \t \t \t \t \t \t \t \t \t如果(Build.VERSION.SDK_INT> = Build.VERSION_CODES.HONEYCOMB)\t \t \t \t \t \t \t \t \t \t \t authenticationTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,(VOID [ ])空值); \t \t \t \t \t \t \t \t別的 \t \t \t \t \t \t authenticationTask.execute(); [/ code] – erickles 2013-04-05 18:11:57
是的,我有,我找到了答案!我只是做了這個,問題解決了! (),String.valueOf(representante.getCodigo()),representante.getSenha(),PedMobileUtils.decrypt(representante.getSenha())); \t \t \t \t \t \t \t \t \t \t如果(Build.VERSION.SDK_INT> = Build.VERSION_CODES.HONEYCOMB)\t \t \t \t \t \t \t \t \t \t \t authenticationTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR,(VOID [ ])空值); \t \t \t \t \t \t \t \t別的 \t \t \t \t \t \t authenticationTask.execute(); Thx很多! – erickles 2013-04-05 18:13:44
看來我的回答是正確的(請標記爲已回答)。您的其他AsyncTasks之一被阻止。你的解決方案是使用一個使用另一個線程的線程池。通常,如果您想要長時間運行的任務,則不應使用AsyncTask文檔中所述的AsyncTask。 – dhaag23 2013-04-06 07:01:07
發佈您用來啓動AsyncTask的代碼。 – 2013-04-05 17:38:25