在我的应用中,我有MainActivity
和Service
。
我开始了我的APP。
然后我把它放到后台。
我打开了一个ES文件浏览器,选择了一个文件,然后点击打开我的APP。
在我的APP中,我实现了onNewIntent()
来处理来自ES文件资源管理器的意图。在onNewIntent()
中,我将文件名广泛用于服务。
观察是(通过在onCreate()
,onNewIntent()
,onStartCommand()
中添加日志消息):
重新开始活动。我看到onCreate()被调用。
在onCreate()
我启动了Service
。
然后我看到onNewIntent()
的被叫。
但是,该服务启动速度不够快,无法处理onNewIntent()
的意图,因此我没有获取文件名。
我的逻辑出了什么问题?或者这样做的正确方法是什么?
答案 0 :(得分:1)
你有没有在android manifest
中设置它android:launchMode="singleTop"
这是为在其包中将launchMode设置为“singleTop”的活动,或者在调用startActivity(Intent)时客户端使用FLAG_ACTIVITY_SINGLE_TOP标志而调用的。在任何一种情况下,当在活动堆栈的顶部而不是正在启动的活动的新实例重新启动活动时,将在现有实例上使用用于重新启动的Intent调用onNewIntent()它。