I have a DialogActivity
which is called from a Fragment
for show a custom Dialog
with two image buttons.
In DialogActivity.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();
In DialogActivity.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();
}
In Fragment that calls startActivityForResult
:
Intent dialogActivityIntent = new Intent(getActivity(), DialogActivity.class);
startActivityForResult(dialogActivityIntent, 999);
In Activity
and Fragment
that calls startActivityForResult
:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
When I click the button I only get the dialog cancel and shows the background activity (fragment).
There isn't any call to onActivityResult
, onResume
, ... in the Fragment
or the Activity
contains the Fragment
.
To implement onActivityResult
in both, Fragment
and Activity
that contains my Fragment
.
I set the attribute noHistory=true
in every Activity
I have.
If I do finish()
in onClick
the Activity/Fragment
that calls DialogActivity
is closed too, and the application return to the before Activity
.
This may be the problem, I DON'T call finish()
... but if I call finish()
, it exits to another Activity
, not the Activity
that calls startActivityForResult
.
startActivityForResult() dont call to onActivityResult(int requestCode, int resultCode, Intent data)?
Cannot get to trigger onActivityResult() android?
startActivityForResult doesn't seem to call onActivityResult
onActivityResult never called
Android onActivityResult NEVER called
onActivityResult() not called when Activity started from Fragment
I hope everything is clearly explained ^^.
Thanks in advance.
Activities that have the attribute noHistory=true
will never have their onActivityResult()
called when launching a new Activity
via startActivityForResult()
. As the documentation mentions, when the noHistory
attribute is set to true
, then finish()
is called on the Activity
when the user navigates away from the Activity
.
So, when startActivityForResult()
is called, the Activity
is navigated away from, causing its finish()
to be called and making it never receive a call to onActivityResult()
. If you remove the noHistory=true
attribute from the Activity
that's calling startActivityForResult()
, then call finish()
in your DialogActivity
's onClick()
, then you should still see the Activity
that launched it, as well as receive a call to onActivityResult()
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With