我的应用程序中有一个bug,我以为我知道该如何解决,但是现在我对所发生的事情有了更多的思考,我不确定我是否知道该修复程序。
我的应用程序接收来自调用第三方应用程序的传入意图作为字符串。该字符串可以作为SEND
意图或VIEW
意图发送。
除非应用程序已在运行,否则所有这些都可以正常工作
正在发生的事情:
在这一点上,我认为该错误是因为我正在读取onCreate()
中的意图,然后显示和处理它。我的想法是,当我们在onCreate()
进入生命周期时,第二次显示该应用程序时,该应用程序已经在运行,onResume()
没有被调用。
但是,如果我继续进行以下测试:
怎么可能,因为该应用仍在运行,所以肯定不会调用onCreate()
!
我认为解决方法只是将getIntent()
调用移至onResume()
(或onStart()
吗?),但是现在我不确定。这是对的事吗?
答案 0 :(得分:1)
问题的核心是,当第二个Activity
被解雇时,您的Intent
已经在活动堆栈的顶部。
启动模式在这里很重要。
您可以做的是,将launchMode设置为singleTop
,然后在onNewIntent()方法中获得意图。
这是处理此类情况的好方法。请阅读上面的链接,它将使事情变得很清楚。