I have an activity A, which starts activity B and activity B starts activity C. Is there a way not to show activity B. I want this behavour because if there is no content (eg for ListView) for activity B, show activity C on which I select some data, and then press back button to go back to activity B. The point is that I would like to have activity B on activity stack, but not to show it in certain cases.
I found the solution:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getIntent().hasExtra("something") && getIntent().getBooleanExtra("something", false) {
//show activity B
setContentView(R.layout.activity_B);
} else {
//don't show activity B, start activity C
startActivityForResult(activity_C, ACTIVITY_NOT_INITIALIZED); //start activity C
}
}
//when came back from activity C, check if activity B was already initialized
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == ACTIVITY_NOT_INITIALIZED) {
//show activity B
setContentView(R.layout.activity_B);
}
}
In your manifest set
android:theme="@android:style/Theme.NoDisplay"
for your activity.
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