如何在不使用threads.some函數的情況下延遲幾秒鐘,我可以在任何地方調用延遲。 Android內置功能非常受歡迎。謝謝延遲幾秒鐘而不使用線程
8
A
回答
18
使用Handler,並使用諸如postDelayed()之類的方法向其發送簡單消息或Runnable。
例如,定義一個Handler對象接收消息和的Runnable:
private Handler mHandler = new Handler();
定義一個可運行:
private Runnable mUpdateTimeTask = new Runnable() {
public void run() {
// Do some stuff that you want to do here
// You could do this call if you wanted it to be periodic:
mHandler.postDelayed(this, 5000);
}
};
原因的可運行以在指定的延遲後在ms
被髮送到處理程序:
mHandler.postDelayed(mUpdateTimeTask, 1000);
如果你不想複雜的se向處理程序發送Runnable,您也可以非常簡單地發送消息給它 - 即使是空的消息,爲了最簡單 - 使用方法sendEmptyMessageDelayed()
。
0
呼叫延遲的方法從靜態上下文
public final class Config {
public static MainActivity context = null;
}
在MainActivity:
@Override
protected void onCreate(final Bundle savedInstanceState) {
...
Config.context = this;
...
}
...
public void execute_method_after_delay(final Callable<Integer> method, int millisec)
{
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
try {
method.call();
}
catch (Exception e) {
}
}
}, millisec);
}
從使用任何類的靜態方法:
private static void a_static_method()
{
int delay = 3000;
Config.context.execute_method_after_delay(new Callable<Integer>() {
public Integer call() {
return method_to_call();
}
}, delay);
}
public static Integer method_to_call()
{
// DO SOMETHING
相關問題
- 1. 延遲頁面處理幾秒鐘
- 2. 如何讓java延遲幾秒鐘?
- 3. Contiki在幾秒鐘內延遲
- 4. PHP CLI延遲幾秒
- 5. 延遲不到一秒鐘,Swift 2
- 6. 實體框架延遲保存幾秒鐘?
- 7. 如何延遲幾秒鐘才能在Imacros中做點什麼?
- 8. 如何停止/延遲代碼幾秒鐘
- 9. JavaFX中的Fadeout光標幾秒鐘後延遲
- 10. 如何延遲輸入提交按鈕幾秒鐘?
- 11. iOS主線程凍結了幾秒鐘
- 12. 延遲使用ruby線程
- 13. 將ldap_bind()延遲5秒鐘到Active Directory
- 14. 延遲文件數據幾分鐘
- 15. dismissViewControllerAnimated:完成:有幾秒延遲
- 16. android-如何延遲音頻文件,使其在幾秒鐘後啓動
- 17. 延遲顯示幾個文本框使用線程
- 18. 延遲2秒
- 19. 延遲8秒不工作?
- 20. Android線程 - 延遲幾次重複線程組
- 21. x264線程延遲
- 22. C#延遲線程
- 23. WPF線程延遲
- 24. android:延遲線程
- 25. OpenCV的多線程(在Windows/.NET)延遲來自視頻捕獲幾秒
- 26. 幾秒鐘後應用程序崩潰
- 27. 幾秒鐘後應用程序崩潰
- 28. 使用AmCharts在幾分鐘和幾秒鐘內設置StockEvents
- 29. 執行延遲幾秒鐘的301重定向的最佳方法?
- 30. GWT:我可以把延遲幾秒鐘顯示一個彈出後
的感謝!我只是添加了新的Handler()。sendEmptyMessageDelayed(1,2500);'但是我不知道'int什麼'值代表 – austin
您提供的鏈接不再可用... – amalBit
好吧,鏈接已刪除。我認爲答案是相當獨立的,因爲它仍然是。 – Trevor