解决方案 »
- android2.2调用webservice 模拟器可以,手机报错
- shell中这句话怎么理解
- Android 使用Cursor时cursor.moveToNext()很慢,是什么原因大概1秒左右
- 关于android 如何才能实现GPRS上网功能的问题。(关键词:apn设置和获取 AT指令 46000/2)
- android 手机做socket服务器
- github里面的android menudrawer控件导入存在大量错误,求解决
- 求一个耳机上按钮事件的例子
- Andorid 中的代码哪一个类是实现像JS的Confirm,.NET的MessageBox的? 谢谢
- arcgis for android 开发的导航的部分 请专家们过来指点一二啊~
- Android studio 真机测试能搜索到蓝牙设备,但连接蓝牙时闪退。Messages未报错
- 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” 还没尝试。