在我的應用程序即時使用我的webview中的超鏈接與shouldOverrideUrlLoading(WebView視圖,字符串url)來觸發一個異步函數......它工作正常,如果用戶只按一次鏈接......但如果用戶點擊鏈接多次(允許用戶在應用內的多次點擊鏈接),我的應用程序關閉「抱歉,系統的程序已經停止」,我得到了下面的錯誤在我的logcat:致命的例外AsyncTask
05-05 19:28:08.920: E/AndroidRuntime(6983): FATAL EXCEPTION: AsyncTask #3
05-05 19:28:08.920: E/AndroidRuntime(6983): Process: com.soto.splash, PID: 6983
05-05 19:28:08.920: E/AndroidRuntime(6983): java.lang.RuntimeException: An error occured while executing doInBackground()
05-05 19:28:08.920: E/AndroidRuntime(6983): at android.os.AsyncTask$3.done(AsyncTask.java:300)
05-05 19:28:08.920: E/AndroidRuntime(6983): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
05-05 19:28:08.920: E/AndroidRuntime(6983): at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
05-05 19:28:08.920: E/AndroidRuntime(6983): at java.util.concurrent.FutureTask.run(FutureTask.java:242)
05-05 19:28:08.920: E/AndroidRuntime(6983): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
05-05 19:28:08.920: E/AndroidRuntime(6983): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
05-05 19:28:08.920: E/AndroidRuntime(6983): at java.lang.Thread.run(Thread.java:864)
05-05 19:28:08.920: E/AndroidRuntime(6983): Caused by: java.lang.IllegalStateException: Invalid use of BasicClientConnManager: connection still allocated.
05-05 19:28:08.920: E/AndroidRuntime(6983): Make sure to release the connection before allocating another one.
05-05 19:28:08.920: E/AndroidRuntime(6983): at ch.boye.httpclientandroidlib.impl.conn.BasicClientConnectionManager.getConnection(BasicClientConnectionManager.java:161)
05-05 19:28:08.920: E/AndroidRuntime(6983): at ch.boye.httpclientandroidlib.impl.conn.BasicClientConnectionManager$1.getConnection(BasicClientConnectionManager.java:138)
05-05 19:28:08.920: E/AndroidRuntime(6983): at ch.boye.httpclientandroidlib.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:455)
05-05 19:28:08.920: E/AndroidRuntime(6983): at ch.boye.httpclientandroidlib.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:902)
05-05 19:28:08.920: E/AndroidRuntime(6983): at ch.boye.httpclientandroidlib.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:801)
05-05 19:28:08.920: E/AndroidRuntime(6983): at ch.boye.httpclientandroidlib.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:780)
05-05 19:28:08.920: E/AndroidRuntime(6983): at com.soto.splash.network.NetworkOperations.addlike(NetworkOperations.java:681)
05-05 19:28:08.920: E/AndroidRuntime(6983): at com.soto.splash.Gallery$LongOperation.doInBackground(Gallery.java:648)
05-05 19:28:08.920: E/AndroidRuntime(6983): at com.soto.splash.Gallery$LongOperation.doInBackground(Gallery.java:1)
05-05 19:28:08.920: E/AndroidRuntime(6983): at android.os.AsyncTask$2.call(AsyncTask.java:288)
05-05 19:28:08.920: E/AndroidRuntime(6983): at java.util.concurrent.FutureTask.run(FutureTask.java:237)
05-05 19:28:08.920: E/AndroidRuntime(6983): ... 3 more
這是我的應用OverrideUrl負載爲webview:
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
if (url.endsWith("&photo"))
{
new LongOperation().execute("");
return true;
}
}
然後thi s是我的異步:
private class LongOperation extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
NetworkOperations.add(url2, "", "");
return null;
}
@Override
protected void onPostExecute(String result) {
}
@Override
protected void onPreExecute() {
}
@Override
protected void onProgressUpdate(Void... values) {
}
}
是他們的解決方案來解決這個問題我與多個Asyncs?
以及當用戶多次點擊它會發生什麼? –
它在我的logcat引發這個頁面頂部的錯誤,並關閉我的應用程序給我這個消息「不幸的是,你的應用程序已停止。」 – user2423476