2013-04-05 103 views
0

我在我的android應用程序中使用AsyncTasks。Android AsyncTask問題:doInBackground不執行

當我必須通過BroadcastReceiver設置一個Service(AlarmManager)並退出應用程序並重新打開應用程序時,AsyncTask纔會執行。

我該如何解決這個問題?我認爲有一些線程或任務沒有完成,導致這種問題。

+3

發佈您用來啓動AsyncTask的代碼。 – 2013-04-05 17:38:25

回答

0

這可能是因爲從Honeycomb(以及之前的甜甜圈)AsyncTask's在單個線程上被串行執行。你有沒有其他長期運行的AsyncTasks可能會阻塞新的?

+0

是的,我有,我找到了答案!我只是這樣做: [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

+0

是的,我有,我找到了答案!我只是做了這個,問題解決了! (),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

+0

看來我的回答是正確的(請標記爲已回答)。您的其他AsyncTasks之一被阻止。你的解決方案是使用一個使用另一個線程的線程池。通常,如果您想要長時間運行的任務,則不應使用AsyncTask文檔中所述的AsyncTask。 – dhaag23 2013-04-06 07:01:07

相關問題