Rya*_*yan 6 messaging android handler
我有一些非常简单的代码来处理程序:
Handler seconds=new Handler() {
@Override
public void handleMessage(Message msg) {
bar.incrementProgressBy(5);
tView1.setText("r:"+msg);
}
};
Run Code Online (Sandbox Code Playgroud)
我的主题是:
Thread seconds_thread=new Thread(new Runnable() {
public void run() {
try {
for (int i=0;i<20 && isRunning.get();i++) {
Thread.sleep(1000);
Message m = new Message();
Bundle b = new Bundle();
b.putInt("what", 5); // for example
m.setData(b);
seconds.sendMessage(m);
}
}
catch (Throwable t) {
// just end the background thread
}
}
});
Run Code Online (Sandbox Code Playgroud)
正如你在上面看到的那样我试图改变what消息中" " 的值,所以我可以根据消息做不同的事情,但根据" tView1.setText("r:"+msg)" " "的值what不会改为5 :(
它只是显示" what=0"
如何更改Message的值以便我可以根据消息执行不同的操作?
谢谢!
您必须从您在处理程序中发送的消息(作为Bundle,然后作为int)获取数据:
Handler seconds=new Handler() {
@Override
public void handleMessage(Message msg) {
int sentInt = msg.getData().getInt("what");
bar.incrementProgressBy(5);
tView1.setText("r:"+Integer.toString(sentInt));
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24864 次 |
| 最近记录: |