我的应用程序有一些问题,我有 4 个按钮,一个用于启动其他每个活动。假设活动称为 a,b,c,d。我希望能够在这些活动之间进行更改,而不会在堆栈中获得 100ds 的暂停活动,但仍保存回溯历史。
即 a->b->a->c->d->a 其中所有 a 都是活动的同一个实例
所以实际上我想要的是能够重新启动同一个活动实例,而不是开始一个新实例。
可能的?
我的应用程序有一些问题,我有 4 个按钮,一个用于启动其他每个活动。假设活动称为 a,b,c,d。我希望能够在这些活动之间进行更改,而不会在堆栈中获得 100ds 的暂停活动,但仍保存回溯历史。
即 a->b->a->c->d->a 其中所有 a 都是活动的同一个实例
所以实际上我想要的是能够重新启动同一个活动实例,而不是开始一个新实例。
可能的?
是的,有可能。
mIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
mIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
将此标志添加到您的意图中,这会将您的活动置于堆栈之上,而不是创建新的活动。
如果您的活动“a”是您的家,您可以添加这些标志:
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
然后,当您按回时,应用程序将退出(因为您清除了所有其他活动)=> doc