2012-06-28 21 views

回答

1

您可以彈出一個模式,不可取消的進度對話框,阻止用戶做任何事情。但是,你永遠不應該阻止UI線程本身。

8

您可以覆蓋dispatchTouchEvent並停止呼叫super.dispatchTouchEvent(ev);任何觸摸事件在處理之前都必須經過此方法。

設置您控制的布爾值,並在方法中使用它來確定是否希望阻止控制。

private boolean stopUserInteractions = false; 

public boolean dispatchTouchEvent(MotionEvent ev) { 
    if (stopUserInteractions) { 
     return true; 
    } else { 
     return super.dispatchTouchEvent(ev); 
    } 
} 
+0

您忽略了鍵盤交互的可能性,而且這也必須在所有活動中靜態實施。最好採用進度對話方法。 – Vaiden

1

在UI Block time中使用ProgressDialog。設置ProgressDialog可取消false。所以用戶不能訪問用戶界面。

謝謝。

1

由於您的問題很短,您將以這種方式得到答案。

您可以使用ThreadAsyncTask使某些ProgressDialog對用戶可見。