Question

In my android application I search for a cafes first. When user select one cafe next activity will show more details about it. Then user can view the map of the cafe. When user click on the Done button I need to redirect user to the search result which was the first activity. So how can I do this ? Calling finish() method will only close the current activity.

Thanks in advance !

Was it helpful?

Solution

you can use finish() in every activity as you proceed or you can start your first activity with this flag FLAG_ACTIVITY_CLEAR_TOP and it will clear all the top activity of your first activity and it will bring your first activity on top.Use like this:

Intent intent = new Intent(this, yourFirstActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

OTHER TIPS

Launch that activity with thiss flag Intent.FLAG_ACTIVITY_CLEAR_TOP

Reference : Android documentation

//DOES NOT FINISH ALL ACTIVITY 

 Intent intent=new Intent();
 intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);


//FINISH ALL ACTIVITY WHICH IS IN STACK ABOVE TARGET ACTIVITY

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
   Intent.FLAG_ACTIVITY_CLEAR_TOP 

clears everything but your first activity, this should work fairly well.

According to Android Application Developer Forum you should initiate this activity in the following manner:-

 startActivity(intent);

In order that the user still can return to a previous activity B one should not use Intent.FLAG_ACTIVITY_CLEAR_TOP

Instead the activity B should use startActivityForResult(...C...) And the same activity B should check the result with onActivityResult() and finish if DONE was clicked in the activity C. But if just return is clicked in the activity C then the activity B would show normally.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top