【发布时间】:2016-07-29 03:02:46
【问题描述】:
我有一个处理问题序列的类。它不会扩展 Activity。类中有方法:
public class QuizMaster {
public void startQuiz(Activity activity, Model model) {
//switch - case statement using model
Intent intent = new Intent(activity, QuestionTextActivity.class)
activity.startActivityForResult(intent, requestCode);
//other case statements with other intents
}
}
当我使用
从工作活动中调用此方法时mQuizMaster.startQuiz(this, mModel);
我完成()子活动:
Intent returnIntent = new Intent();
returnIntent.putExtra(ARG_SELECTED_CHECKBOX, checkedBox);
setResult(RESULT_CODE, returnIntent);
finish();
它不执行父活动的
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
Log.d(LOG_TAG, "OnActivityResult called in SignDetailsActivity. Resultcode is: ");
}
但是当我执行
Intent intent = new Intent(activity, QuestionTextActivity.class)
activity.startActivityForResult(intent, requestCode);
在实际的父活动文件中,它确实执行了 onActivityResult 方法。
如果子活动与非活动类一起发送,为什么子活动不运行父活动中的onActivityResult?我该如何解决这个问题?
我没有发现任何人在像这样的非活动类中执行 new Intent() 时遇到同样的问题。如果有人,我没有使用正确的搜索关键字,其他一些人可能会像我一样输入并进入此页面。
【问题讨论】:
-
新的 Intent 没有启动 Activity,你的代码中一定有“startActivity”或“startActivityForResult”之类的东西..你能更新你的代码示例吗?
-
抱歉,我忘了在问题中添加那行代码。
-
这是一个有 7 个案例的开关,它们都将不同的子类置于意图中。选择一个后,它总是执行 4 inent.putExtra 和 activity.startActivityForResult(intent, requestCode)。
标签: android android-intent android-activity onactivityresult