通过单击通知销毁活动并再次调用它

时间:2015-02-15 23:26:27

标签: java android

我发出了一个action的通知,该通知会打开 mainactivity 。这是第一次调用活动,创建并且一切正常。暂停活动后,我会自动调用活动的 onDestroy(),并且会成功销毁。但是,当我第二次单击该通知时,会出现FATAL EXCEPTION: main can't resume activity错误。如果活动被破坏,我没想到它会被恢复,但又重新创建......为什么会发生这种情况?如何通过这些方法强制重建活动?

1 个答案:

答案 0 :(得分:0)

不要直接调用onDestroy()

这些是系统应该调用的生命周期方法。您遇到的问题是系统仍然认为活动已暂停(而不是像您希望的那样被销毁),因为它从未被通知过。毫无疑问,你在onDestroy()方法中调用了super.onDestroy()(正确的东西),导致部分活动自我清理,使其不可恢复。当系统绕过它认为暂停的活动时,会抛出该错误。

幸运的是,有很多方法可以通过名为finish()的方法告诉系统在您需要时终止您的活动。

Android文档:

  

在您的活动完成后调用此选项并应关闭。 ActivityResult会传播回通过onActivityResult()启动你的人。

使用此调用替换您对onDestroy()的调用,以解决您的问题。

永远不要直接调用生命周期方法!