如何强制当前线程等到另一个线程完成后再继续。
在我的程序中,用户从MODE
中选择AlertDialog
,我想暂停执行该程序,然后继续,因为该模式包含游戏玩法的重要配置。
new AlertDialog.Builder(this)
.setItems(R.array.game_modes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
switch (which) {
case 0:
setMode(TRAINING_MODE);
case 1:
setMode(QUIZ_MODE);
default:
setMode(TRAINING_MODE);
break;
}
//continue loading the rest of onCreate();
contineOnCreate();
}
})
.create().show();
如果这是不可能的,任何人都可以给出可能的解决方案吗?
答案 0 :(得分:2)
我如何强制当前线程 等到另一个人完成了 在继续之前。
你没有。
在我的程序中,用户选择MODE 从AlertDialog,我想停止 之前执行该程序 继续,因为模式很重要 游戏配置。
不,你没有。您想退出主应用程序线程(因此出现对话框),然后在用户通过某种方式解除对话后启动游戏性。
因为警报加载了它自己的 线程因此允许主要 线程继续正常加载
不,它没有。所有UI都在主应用程序线程上完成,包括对话框。
不,因为某些onStart()代码 控制活动状态时 活动失去焦点,需要 活动时重新配置 重新获得焦点。
然后在用户通过某种方式解除对话之前不要做任何事情。
另一种选择:将“对话框”UI选项移动到自己的活动中,并让用户在前往游戏活动途中通过它。