在我的应用中,我有一个MainActivity和一个Service。我启动了我的应用程序。然后我把它放到背景里。我打开了一个ES文件资源管理器,选择一个文件,然后点击打开我的应用程序。
在我的应用程序中,我实现了onNewIntent()来处理ES文件资源管理器的意图。在onNewIntent()中,我大写了要服务的文件名。
观察结果是(通过在onCreate()、onNewIntent()、onStartCommand()中放置日志消息):
活动将重新启动。我看到onCreate()被调用了。
在onCreate(),我启动了Service。
然后我看到了onNewIntent()的调用。
但是,该服务的启动速度不够快,无法处理onNewIntent()的意图,因此我没有获得文件名。
我的逻辑怎么了?或者怎样做才是正确的呢?
发布于 2013-12-28 10:36:57
让你在android清单中设置这个
android:launchMode="singleTop"对于在其包中将launchMode设置为"singleTop“的活动,或者如果客户端在调用startActivity(意图)时使用FLAG_ACTIVITY_SINGLE_TOP标志,则会调用此标记。在这两种情况下,当活动在活动堆栈顶部而不是正在启动的活动的新实例重新启动时,将在现有实例上调用onNewIntent(),其目的是重新启动它。
https://stackoverflow.com/questions/20813512
复制相似问题