快速提问......使用J2ME(CLDC 1.1,MIDP-2.1)可以让Midlet睡一段时间(不使用线程)...例如:
public class myMidlet extends MIDlet{
public void startApp() {
/* Sleep for 10 seconds */
/* The answer was: */
try {
Thread.sleep(time_ms);
} catch (Exception e) {}
}
...
我并没有那么多地使用Java,也不想仅仅为了简单的睡眠而编写线程。
提前致谢
回答摘要
我缺乏Java知识。我看到使用Thread.sleep()的例子让我相信它只能在Midlet产生的线程对象中使用...而不是midlet本身。我不想将midlet逻辑假脱机到一个线程来睡觉它......但是现在我知道midlet在默认线程中运行了:) 要找到我从未读过的Java书因为我没有我想我会用这种语言
答案 0 :(得分:6)
我不明白你的意思是将midlet置于暂停状态还是仅在指定时间内停止执行。
如果是后者,实际上我没有不受欢迎,为什么你不想使用Threads,这没什么大不了的。您只需在以下任意位置插入以下三行:
try {
Thread.sleep(10000);
} catch (Exception ex) {}
这就是全部,没什么太复杂的。
答案 1 :(得分:2)
我不知道确切的答案,但我也不明白调用静态方法Thread.sleep(毫秒)的问题是“导致当前正在执行的线程休眠(暂时停止执行)指定的数字”毫秒“。你打电话给这个编程线程吗?
答案 2 :(得分:1)
我会选择Malcolm的方法,因为你的线程可能会抛出异常。
呃,你将很难编程J2ME并试图避免线程编程。如果您的应用程序变得有点复杂,尤其是在使用网络连接时,您将不得不使用线程。此外,如果某些操作需要超过2-3秒,则建议在单独的线程中运行它,可能(同时)通知用户正在进行的工作。 是的,我忘记了什么。我最近为大学课程编写了一个J2ME应用程序。在那里,我构建了我称之为“ExecutableTask”的东西,它允许我以方便简单的方式处理线程。如果您想拥有look at the source ...很遗憾,由于谷歌托管解决方案的一些错误(我的项目的某些名称是我的原因),您无法在Google资源库中在线浏览。[...]并且不想编写线程 只是[...]
答案 3 :(得分:0)
您可以尝试使用Object.wait()
,Object.wait(long timeoutValue)
。虽然我不建议你尝试延迟主startApp()/系统线程。