启动后的代码执行问题()

时间:2013-09-04 02:02:25

标签: android

我正在创建一个测验应用。在下面的代码中,我希望startActivity(intent);之后的代码在Activity完成后执行。处于当前状态的应用程序将显示问题文本和答案按钮。一旦用户做出选择,下一个问题和相应的答案按钮将在新活动启动之前一瞬间显示。我想要的是让应用程序在选择答案时直接进入新的Activity,并在新的Activity完成后显示下一个问题。

我的代码:

Intent intent = new Intent(getApplicationContext(), NewActivity.class);
startActivity(intent);

// helper variable to keep track of the current question
questionCounter++;
if(questionCounter < numGameQuestions)
{
    // displays the next question
    playGame(randQuestionsArr[questionCounter]);
}

3 个答案:

答案 0 :(得分:0)

您要找的是startActivityForResult(Intent intent, int requestCode)

通过致电startActivityForResult(Intent intent, int requestCode),您还需要:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    switch (requestCode) {
    case REQUEST_CODE_YOU_USED_IN_STARTACTIVITYFORRESULT:
        switch (resultCode) {
        case Activity.RESULT_OK:
            Log.d(TAG, "Result OK");
            // Your code after "that Activity" is finished.

            break;
        }
        break;

    default:
        break;
    }
}

然后在that Activity,你需要:

setResult(RESULT_OK);

让调用活动知道结果。

答案 1 :(得分:0)

1添加定义

public static final int REQUEST_CODE = 100;

2用startActivityForResult();

替换startActivity()
startActivityForResult(intent, REQUEST_CODE );

3在完成子活动的活动之前,请调用setResult方法;

setResult(RESULT_OK);

4在父活动的onActivityResult方法中添加您要做的事情。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE ) {
    if (resultCode == RESULT_OK) {
        System.out.println("OK");
    } 
}
}

答案 2 :(得分:0)

使用

  

完成()

在启动新意图

后停止执行当前activity