【发布时间】:2012-04-01 23:26:42
【问题描述】:
我正在开发一个应用程序来计算几段文本中问号的数量。
扫描完成后(完全不需要时间),我希望在数字从 0 变为 TOTAL 后显示总数。所以,对于 10:0,1,2,3,4,5,6,7,8,9 10 然后停止。
我尝试了几种不同的技术:
TextView sentScore = (TextView) findViewById(R.id.sentScore);
long freezeTime = SystemClock.uptimeMillis();
for (int i = 0; i < sent; i++) {
if ((SystemClock.uptimeMillis() - freezeTime) > 500) {
sentScore.setText(sent.toString());
}
}
我也试过这个:
for (int i = 0; i < sent; i++) {
// try {
Thread.sleep(500);
} catch (InterruptedException ie) {
sentScore.setText(i.toString());
}
}
我确信这些都是完全业余的尝试。任何帮助将不胜感激。
谢谢,
理查德
【问题讨论】:
-
如果你在 UI 线程上使用 sleep 方法,那么你的应用程序的主线程,那么不要。它将阻塞界面,用户在那段时间将无法做任何事情。
-
这正是发生的事情。关于如何实现我想要的效果的任何想法?
-
这里已经很晚了,我很累,所以我不能完全按照你想做的事情,但为了避免界面冻结,你必须在单独的线程中设置 sleep 方法。要么创建一个并将你的 sleep 方法放在那里,或者我不确定我很久以前使用它,有某种类型的计时器来自 Java 或 Android 平台,它会自动创建一个单独的线程,你可以附加一个回调函数,因此它每 500 毫秒执行一次。只需谷歌 java timers 或 android timers 或只是等待这里的人告诉你:P 哈哈。我现在累了 2 :)
标签: java android android-layout