Android 从片段中调用startActivityForResult';不要调用ActivityResult

Android 从片段中调用startActivityForResult';不要调用ActivityResult,android,android-intent,android-fragments,android-activity,Android,Android Intent,Android Fragments,Android Activity,我有一个对话框活动,它是从片段调用的,用于显示带有两个图像按钮的自定义对话框 在对话框Activity.onCreate中 final Dialog dialog = new Dialog(this, R.style.DialogTheme); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.dialog_pause); dialog.getWindow().setBack

我有一个
对话框活动
,它是从
片段
调用的,用于显示带有两个图像按钮的自定义
对话框

在对话框Activity.onCreate中

final Dialog dialog = new Dialog(this, R.style.DialogTheme);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.dialog_pause); 
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
dialog.show();
对话框activity.onClick中

        @Override
        public void onClick(View v) {
            Log.d(LOGTAG, "onClick CONTINUE");

            Intent resultData = new Intent();
            resultData.putExtra("TEST", "return data");
            setResult(666, resultData);
            dialog.cancel();
        }
在调用
startActivityForResult
的片段中:

Intent dialogActivityIntent = new Intent(getActivity(), DialogActivity.class);
startActivityForResult(dialogActivityIntent, 999);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);
}
在调用
startActivityForResult
活动
片段
中:

Intent dialogActivityIntent = new Intent(getActivity(), DialogActivity.class);
startActivityForResult(dialogActivityIntent, 999);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);
}
当我点击按钮时,我只会看到“取消”对话框,并显示背景活动(片段)

在ActivityResult
onResume
、。。。在
片段
活动
中包含
片段

我尝试过的事情: 要在包含我的
片段的
Fragment
Activity
中实现
onActivityResult

需要知道的事情: 我在我的每个
活动中设置属性
noHistory=true

如果我在
onClick
中执行
finish()
,调用
DialogActivity
Activity/Fragment
也将关闭,应用程序将返回到之前的
Activity

这可能就是问题所在,我不调用
finish()。。。但是如果我调用
finish()
,它将退出到另一个
活动
,而不是调用
startActivityForResult的
活动

我检查的链接:


我希望一切都解释清楚


提前感谢。

当通过
startActivityForResult()
启动新的
活动时,具有属性
noHistory=true
的活动将永远不会调用其
onActivityResult()
。如上所述,当
noHistory
属性设置为
true
时,当用户导航离开
活动时,在
活动上调用
finish()


因此,当调用
startActivityForResult()
时,将导航
活动
,导致调用其
finish()
,并使其永远不会收到对
onActivityResult()的调用。如果从调用
startActivityForResult()
Activity
中删除
noHistory=true
属性,然后在
对话框Activity
onClick()
中调用
finish()
,那么您仍应该看到启动它的
Activity
,以及接收到调用onActivityResult()的调用

尝试
getActivity().startActivityForResult(dialogActivityIntent,999)
并在
活动
中捕获结果,该活动承载
片段
我已经尝试过了,代码就在我发帖前一分钟。谢谢:(你想要的
活动
结果是否在清单文件中有
android:launchMode
指定给
singleInstance
singleTask
?查看此链接可能会对你有所帮助:很抱歉,评论太晚了……我几天后按照你说的解决了这个问题。谢谢!很棒的@ashu..它解决了我的两个问题。)首先,当显示器关闭时,我的活动马上就结束了。其次,问题中提到的相同问题。谢谢你的帮助。