private Runnable updateThread = new Runnable() {
int i = 0;
@Override
public void run() {
Log.d(TAG, "Begin Thread ->" + i);
i = i + 10;
// 得到一个消息对象,Message类是由Android操作系统提供
Message msg = updateBarHandler.obtainMessage();
// 将message对象的arg1参数的值设置为i
// 用arg1和arg2两个成员变量传递消息,系统性能消耗少
msg.arg1 = i;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();// 在命令行打印异常信息在程序中出错的位置及原因
}
// 将message对象加入到消息队列中
updateBarHandler.sendMessage(msg);
if (i == 100) {
// 如果当i的值为100时,将线程对象从handler中移除
Log.d(TAG, "removeCallbacks updateThread");
updateBarHandler.removeCallbacks(updateThread);
// 返回主界面
Intent i = new Intent(PBarDisplay.this, MainActivity.class);
PBarDisplay.this.startActivity(i);
PBarDisplay.this.finish();
}
}
};
学习handler功能 写了个进度条 进度条关闭后 做了
PBarDisplay.this.startActivity(i);
PBarDisplay.this.finish();
跳转到初始activity并关闭当前activity 但是后台打印Log.d(TAG, "Begin Thread ->" + i);
一直有 是什么原因呢
android 线程
------解决方案--------------------
if(i == 100)
{
....
}else
{
updateBarHandler.sendMessage(msg);
}