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
}
因此,如果重新创建活动,请不要调用您当前正在使用的任何逻辑。