解决方案 »
- 请问android2.3 下的 S5pv210 显示驱动怎么和FIMC0/FIMC1/FIMC2联系起来的?
- 问一个关于nfc和RFID的问题
- 为什么Google的位置定位接口现在无法访问??急
- 游戏控制器实现,求助~~~两天没解决了
- ListView 的 id 问题
- 各位高手,麻烦帮我看一下下面的错误是什么错误!
- webview如何加载应用程序安装的路径下面(“/data/data/com...”)
- android源码怎么查看?
- 关于按钮按下时触发其他按钮的问题,有做过的进来看一下
- 求助,android项目出现这么个错误
- Android开发论坛上线了,专为开发者提供的社区!
- Android中获取短信内容后如何传递到另一个Activity
for(;mSleepTime>0;mSleepTime--){
handler.sendMessage(handler.obtainMessage(1));
}一次只发一个消息不好吗? Handler不是同步的吧,最后得到的mSleepTime应该都是0了...
在帖子中你不使用循环进行减数操作,请问下有别的想法可以让mSleepTime 进行自减少倒计时吗?
for(;mSleepTime>0;mSleepTime--){
handler.sendMessage(handler.obtainMessage(1));
}pressbar( mThread控制)在mSleepTime为0时开始start。mSleeptime不使用循环减少到0,mThread就不能执行法.start().所以必须让mSleepTime最终为0的。
TimerTask task = new TimerTask(){
public void run() {
Message message = new Message();
message.what = 1;
//for(;mSleepTime>0;mSleepTime--){
handler.sendMessage(handler.obtainMessage(1));
//}
if(mSleepTime==0){
handler.sendMessage(handler.obtainMessage(2));
isRunning = true;
mThread.start();
}
}
};
public void run() {
Message message = new Message();
message.what = 1; mSleepTime--;
if(mSleepTime > 0) {
handler.sendMessage(handler.obtainMessage(1));
} if(mSleepTime==0){
handler.sendMessage(handler.obtainMessage(2));
isRunning = true;
mThread.start();
}
}
};
在mSleepTime为0后,这个timer是不再需要了吧。应该考虑调用Timer的cancel()方法。使用Handler也能计时的。例如使用sendMessageDelayed
public void run() {
Message message = new Message();
message.what = 1; --mSleepTime;
if(mSleepTime >= 0) {
handler.sendMessage(handler.obtainMessage(1));
} if(mSleepTime<0){
handler.sendMessage(handler.obtainMessage(2));
isRunning = true;
mThread.start();
}
}
};mSleepTime还是必须“mSleepTime<0”,否则会出现00:00:01程序无法继续下去的问题。“使用Handler也能计时的。例如使用sendMessageDelayed” 还没尝试。