因此,我有一個public static Bitmap
,其中延遲了2000密耳。我的問題是我得到return
之前執行延遲的代碼。Android公開在延遲結束之前返回位圖函數返回
給你我的功能結構的想法:
public static Bitmap getBitmapFromWebview(WebView webView){
*******************some code here
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
********************declaring bm bitmap
Log.i("DelayD", "Delay");
}
}, 2000);
Log.i("DelayD", "Return");
return bm;
}
我已經設置了2個調試消息 - 延遲部分內部,return
前一個權利。
下面是我在logcat中得到:
08-11 20:45:13.520 I/DelayD: Return
08-11 20:45:16.173 I/DelayD: Delay
以及一個錯誤信息,我不知道是相關的:
08-11 20:44:45.170 E/Sensors: new setDelay handle(0),ns(66667000)m, error(0), index(2)
08-11 20:44:48.082 E/Sensors: new setDelay handle(0),ns(66667000)m, error(0), index(2)
有道理,多謝。但是,是否還有一種方法可以完全像我打算的那樣完全阻止一個功能? –
不推薦,特別是如果你在你的UI線程。如果您在UI線程上阻止某個功能,則您的應用程序將停止響應用戶輸入。但是一個簡單的Thread.sleep(2000)就可以做到這一點(我認爲幽默不要把我當回事)。不完全確定你想要完成的總體目標是什麼? –
我嘗試過'睡眠',但是效果不好。至於我在做什麼......這有點複雜 - 我試圖從'webview'生成一個'bitmap',但由於一些縮放問題,如果我放大太多,我可以讓OOM崩潰,所以我正在開發一種解決方法。現在它是「給功能更多的時間來處理所有事情」。這裏的[線程](https://stackoverflow.com/questions/45588882/getting-bitmap-from-webview-generates-outofmemory-crash)與賞金,雖然我想我已經明白了這一點。 –