我有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