I\'m using Android L transitions passing an ActivityOptions
bundle in intent.
How can I reproduce the animation on the same intent with TaskStackBuilder
After digging inside TaskStackBuilder
's implementation, the problem is that it forces adding Intent.FLAG_ACTIVITY_CLEAR_TASK
to the 1st intent in the stack, which makes that strange effect, so use the following to start the stack:
Intent[] intents = TaskStackBuilder.create(this)
.addNextIntentWithParentStack(myIntent)
.getIntents();
if (intents.length > 0) {
intents[0].setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);// Or any other flags you want, but not the `.._CLEAR_..` one
}
// `this` inside current activity, or you can use App's context
this.startActivities(intents, ActivityOptions.makeSceneTransitionAnimation(this).toBundle());
The idea here is to still use the TaskStackBuilder
for creating your intents' stack, then remove the weird Intent.FLAG_ACTIVITY_CLEAR_TASK
that the TaskStackBuilder
adds to the 1st intent, then start the activities manually using any Context you want.
Try to do it using:
TaskStackBuilder.create (Context context)
Return a new TaskStackBuilder for launching a fresh taskstack consisting of a series of activities. Parameters -
Context context
: The context that will launch the new task stack or generate a PendingIntent
.
Returns, TaskStackBuilder
- a new TaskStackBuilder.