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 (e
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);
}
}
You can call startActivity, without calling setContentView for a layout. Hope this helps!
In your manifest set
android:theme="@android:style/Theme.NoDisplay"
for your activity.
do not set setContentView() for activity B
just call startActivity()
in onCreate()
method of activity B. It will not be shown, but it will be in activity stack.