在继续执行主线程之前等待DialogActivity返回

时间:2010-05-22 13:12:20

标签: android android-alertdialog

如何强制当前线程等到另一个线程完成后再继续。

在我的程序中,用户从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();

如果这是不可能的,任何人都可以给出可能的解决方案吗?

1 个答案:

答案 0 :(得分:2)

  

我如何强制当前线程   等到另一个人完成了   在继续之前。

你没有。

  

在我的程序中,用户选择MODE   从AlertDialog,我想停止   之前执行该程序   继续,因为模式很重要   游戏配置。

不,你没有。您想退出主应用程序线程(因此出现对话框),然后在用户通过某种方式解除对话后启动游戏性。

  

因为警报加载了它自己的   线程因此允许主要   线程继续正常加载

不,它没有。所有UI都在主应用程序线程上完成,包括对话框。

  

不,因为某些onStart()代码   控制活动状态时   活动失去焦点,需要   活动时重新配置   重新获得焦点。

然后在用户通过某种方式解除对话之前不要做任何事情。

另一种选择:将“对话框”UI选项移动到自己的活动中,并让用户在前往游戏活动途中通过它。