如何在不使用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