Android 方法调用-onActivityResult vs DialogInterface.OnClickListener()

Android 方法调用-onActivityResult vs DialogInterface.OnClickListener(),android,android-intent,android-activity,dialog,chronometer,Android,Android Intent,Android Activity,Dialog,Chronometer,我刚刚在Play Store上发布了一款游戏,我正计划让它看起来更好、更直观,我正试图用mines取代Android对话框 当用户完成一个级别时,我需要显示我的自定义对话框,如果用户单击一些按钮,对话框(这是一个带有自定义主题的活动,使其看起来像一个对话框)必须返回一个带有setResult(customResult,intent)的整数,然后完成 问题是,当我在执行startActivityForResult(intentCustomDialog,0)的活动的onActivityResult(

我刚刚在Play Store上发布了一款游戏,我正计划让它看起来更好、更直观,我正试图用mines取代Android对话框

当用户完成一个级别时,我需要显示我的自定义对话框,如果用户单击一些按钮,对话框(这是一个带有自定义主题的活动,使其看起来像一个对话框)必须返回一个带有
setResult(customResult,intent)
的整数,然后完成

问题是,当我在执行
startActivityForResult(intentCustomDialog,0)
的活动的
onActivityResult()
中收到resultCode时,我调用一个自定义方法,根据结果重新启动该级别或启动下一个级别(用于知道用户单击的按钮)。这种方法也应该重新启动计时器,但它什么也不做
另一方面,当我使用android对话框并将
restart()
调用放入onClickListener时,计时器成功重启

那么我错过了什么?为什么
restart()
调用使用android对话框的
onClickListener
成功地重新启动了计时器,而不是在我从
onActivityResult()方法调用它时

这将非常有帮助,因此我可以实现自己的对话框,并使用onActivityResult()
或甚至调用自定义的
onDialogResult()
方法来分离自定义对话框活动和正常活动的启动

提前谢谢

编辑

在我的游戏课上:

...
public static final int RESULT_RESTART = 8;
public static final int RESULT_NEXT = 9;
public static final int RESULT_MENU = 10;
...

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (resultCode) {
        case RESULT_MENU:
            back(null);
            break;
        case RESULT_NEXT:
            nextGrid();
            break;
        case RESULT_RESTART:
            restartGrid();
            break;
    }
}
restartGrid()方法:

对话框界面可以完美地工作。OnClickListener()
可以让它工作:

public void startChrono() {
    chrono.post(new Runnable() {
        @Override
        public void run() {
            chrono.setBase(SystemClock.elapsedRealtime());
            chrono.start();
        }
    });
}
但我仍然不明白为什么我必须为天文钟做这些,因为已经着色的视图在没有使用post方法的情况下被正确重置。。。
不管怎样,它都可以工作:)

你确定调用了
onActivityResult()
吗?是的,我确定,因为播放器着色的视图已成功重置为其原始颜色。这就是为什么它如此奇怪的原因,该机构工作正常,只有计时器没有无缘无故地复位。您可以发布计时器代码并
onActivityResult()
Done吗。我编辑了我的原始帖子。
public void startChrono() {
    chrono.post(new Runnable() {
        @Override
        public void run() {
            chrono.setBase(SystemClock.elapsedRealtime());
            chrono.start();
        }
    });
}