我在我的代码中运行多个线程和处理程序。
这是我的处理程序
PrizeRunnable mTempPotionRunnable = new PrizeRunnable(aaa);
handler.postDelayed(mTempPotionRunnable, 4000);
和
class PrizeRunnable implements Runnable {
String type;
PrizeRunnable(String type) {
this.type = type;
}
public void run() {
synchronized (this) {
if(!mIsHandlerStarted){
if(type.equals(aaa))
// Do something
else if(type.equals(bbb))
// Do something
mIsHandlerStarted = true;
handler.removeCallbacks(this);
}
}
}
}
但有时它会同时运行。
我不知道原因。
更新
我尝试将其更改为:
handler.postDelayed(mTempPotionRunnable, 4000);
和
Runnable mTempPotionRunnable = new Runnable() {
@Override
public void run() {
synchronized (this) {
if(!mIsHandlerStarted){
// Do something
mIsHandlerStarted = true;
handler.removeCallbacks(mMetalRunnable);
}
}
}
};
可能会解决我的问题。我正在测试这种方法。
但我无法将参数传递给我的Runnable
. 我该怎么做?