Java 一段时间后怎么做?
我想这样做:Java 一段时间后怎么做?,java,android,while-loop,Java,Android,While Loop,我想这样做: @Override protected String doInBackground(Object... params) { int i = 0; int max = Integer.MAX_VALUE; GPSTracker gps = new GPSTracker(context); do { //Something } while(10 seconds); return null; } 如
@Override
protected String doInBackground(Object... params) {
int i = 0;
int max = Integer.MAX_VALUE;
GPSTracker gps = new GPSTracker(context);
do
{
//Something
} while(10 seconds);
return null;
}
如何在while语句中输入计数时间。我想在10秒钟内完成此操作。要延迟执行,您可以
睡眠
线程:
Thread.sleep(timeInMills);
这一行可能引发线程异常,并且永远不应该在主UI线程上执行,因为它将导致应用程序停止与Android的通信,从而导致ANR
要在单个活动的后台运行进程,您应该生成一个新的线程
new Thread(){
public void run(){
//Process Stuff
}
}.start();
如果希望此部分代码在应用程序的整个生命周期内运行,包括对用户隐藏时,则应考虑运行长寿命任务的服务。要延迟执行,您可以
睡眠
线程:
Thread.sleep(timeInMills);
这一行可能引发线程异常,并且永远不应该在主UI线程上执行,因为它将导致应用程序停止与Android的通信,从而导致ANR
要在单个活动的后台运行进程,您应该生成一个新的线程
new Thread(){
public void run(){
//Process Stuff
}
}.start();
如果您希望在应用程序的整个生命周期内运行此部分代码,包括对用户隐藏此部分代码时,您应该考虑为长期任务运行服务。如果您希望定期运行任务,请使用。如果您希望定期运行任务,使用。方便的替代方法
Thread.sleep(timeInMillis)
是
这样单位就更明确,更容易推理
请注意,这两种方法都会引发InterruptedException,您必须处理它。你可以了解更多。如果像通常情况一样,您不想使用中断,也不想让代码被try/catch块弄乱,那么可以使用以下方法:
Uninterruptibles.sleepUninterruptibly(10, TimeUnit.SECONDS);
一个方便的替代方案
Thread.sleep(timeInMillis)
是
这样单位就更明确,更容易推理
请注意,这两种方法都会引发InterruptedException,您必须处理它。你可以了解更多。如果像通常情况一样,您不想使用中断,也不想让代码被try/catch块弄乱,那么可以使用以下方法:
Uninterruptibles.sleepUninterruptibly(10, TimeUnit.SECONDS);
您可以使用Thread.sleep();(不是很干净)
最好使用处理程序来执行此操作
例:
您可以使用Thread.sleep();(不是很干净)
最好使用处理程序来执行此操作
例:
我做到了:
long start = System.currentTimeMillis();
long end = start + 60*1000; // 60 seconds * 1000 ms/sec
while (System.currentTimeMillis() < end)
{
// run
}
long start=System.currentTimeMillis();
长端=起点+60*1000;//60秒*1000毫秒/秒
while(System.currentTimeMillis()
谢谢你的回答。我做到了:
long start = System.currentTimeMillis();
long end = start + 60*1000; // 60 seconds * 1000 ms/sec
while (System.currentTimeMillis() < end)
{
// run
}
long start=System.currentTimeMillis();
长端=起点+60*1000;//60秒*1000毫秒/秒
while(System.currentTimeMillis()
感谢您提供的所有答案。有人不使用服务吗?
睡眠
,对不起,没有在IDE中,无法记住呼叫:Dany不使用服务吗?睡眠
,抱歉,不在IDE中,无法记住呼叫:我有第二个线程,我在AsysncTask类中执行。我想在几秒钟后停一会儿“做{//Something}while(10秒钟后);”这是从图书馆来的吗?不是,是从我正在做的一个应用程序来的。我想继续做直到10秒结束。我真的有第二个线程,我在一个AsysncTask类中做。我想在几秒钟后停一会儿“做{//Something}while(10秒钟后);”这是从图书馆来的吗?不是,是从我正在做的一个应用程序来的。我要继续做直到10秒结束。