[英]Handler from a non-Activity class
我們可以執行嗎
handler.postDelayed(runnable,400)
來自非Activity
課?
我有一個控制器類,假設它是一個適配器。 我們可以在那里使用Handler
嗎?
我嘗試使用斷點調試我的應用程序,但控件未達到
handler.postDelayed(runnable,400)
有人可以幫我嗎?
實際上,我正在使用OCR。 如果進行了某些匹配,我想自動返回到我的主要活動。 我想它是個彎針。 我還需要拍攝照片。 為此,我需要使用處理程序。
我們可以從非
Activity
類執行handler.postDelayed(runnable, 400)
嗎?
是的你可以。
任何Handler
都與Thread
(不是Activity
或另一個對象)和Thread
的消息隊列相關聯。 Handlers
后/ 處理 Messages
和Runnables
到/ 從由處理的隊列Looper
。
當您在主線程中(例如在Activity
類中)創建Handler
時,您會將消息和Runnables
(帶有post()
, postDelayed()
, sendMessage()
等)發布/發送到運行循環中。 但是,默認情況下,除非先創建一個調用Looper.loop()
然后調用Looper.prepare()
線程,否則線程不會運行循環。
如果在后台線程上創建的Handler
程序將消息和Runnables
到主線程的隊列中
Looper
傳遞給Handler
的構造函數 new Handler(Looper.getMainLooper())
。 我嘗試使用斷點調試我的應用程序,但控件無法達到。
我認為無論是你的代碼的邏輯從來沒有達到“控制”或handler
,而不准備和循環后台線程內創建Looper
,以便runnable
不能被處理的handler
。
我用定時器。 它為我工作。 大聲笑。
new Timer().schedule(new TimerTask() {
@Override
public void run() {
Intent data = new Intent();
data.putExtra(OcrCaptureActivity.TextBlockObject, textBlock.getValue());
Log.d("Read Text : ", textBlock.getValue());
Base.base_activity.setResult(CommonStatusCodes.SUCCESS, data);
Base.base_activity.finish();
}
}, POST_DELAYED_TIME);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.