When a user clicks on the link, I get the event on the manifest and opens ActivityB.那么这意味着你正在ActivityB堆栈顶部......这是预期的。你能做的就是在你finish()打开ActivityA之前打电话ActivityB。这样,您就可以ActivityA从堆栈中删除。当您从那里返回时,ActivityB该应用程序将显示以前的内容ActivityA- 如果那里有任何内容。
在您的情况下,ActivityA似乎被Android系统破坏以回收资源(通常是内存)。或者,也许你已经Developer Options检查过并且你在那里Don't keep activities检查过。
编辑:由于@merendica对正确性的以下合理和公平的评论,也是投票者:在您的内部ActivityA,您可以通过检查属性是否为非空onCreate()来知道是否重新创建了活动:Bundle
if(savedInstance == null) {
// activity newly created
} else {
// activity re-created either because of screen rotation
// or user returned at some point to this activity
}
因此,如果重新创建活动,请不要调用您当前正在使用的任何逻辑。