我有4个班,的Android +如何中断处理程序的循环(run()中)
- FirstActivity
- Play_1
- Play_2
- Play_3
onClicking按钮在FirstActivty
,我会随机去其余的三个活动。 例如,在下面的代码中,我来到Play3.class
...我已经设置然后处理程序运行3秒。 我的问题是在run()
时间3秒,如果我点击backButton
,它会去FirstActivity.class
和run()
时间在3秒后,它再次将随机循环(Play_1
,Play_2
,Play_3
)。现在,只有当我点击backButton
时,我才想要永久转到FirstActivity.class
。我该怎么办?
(注意:的run()
时间三秒后,我高兴地将主屏幕不过,在此期间,run()
时间后,只有我想中断循环并返回到主屏幕)
class listener implements OnClickListener {
@Override
public void onClick(final View v) {
switch (v.getId()) {
case R.id.play3_image1:
bt1.setVisibility(View.GONE);
bt2.setVisibility(View.GONE);
bt3.setVisibility(View.GONE);
bt4.setVisibility(View.GONE);
bt5.setVisibility(View.GONE);
bt6.setVisibility(View.VISIBLE);
try {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Random rand = new Random();
int x = rand.nextInt(3) + 1;
Intent intent = new Intent();
switch (x) {
case 1:
intent.setClass(v.getContext(), Play_1.class);
break;
case 2:
intent.setClass(v.getContext(), Play_2.class);
break;
case 3:
intent.setClass(v.getContext(), Play_3.class);
break;
default:
break;
}
startActivity(intent);
}
}, 3000);
} catch (Exception e) { e.printStackTrace(); }
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){
Intent i = new Intent(Play_3.this,Example.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
}
return super.onKeyDown(keyCode, event);
}
}
}
为什么不添加布尔变量skip = false;并用true填充它后面的按钮?然后在运行处理程序之前检查变量是否跳过== true。 – 2013-02-28 11:41:27