单实例活动在Android 8 Oreo上间歇启动两次

单实例活动在Android 8 Oreo上间歇启动两次,android,android-8.0-oreo,Android,Android 8.0 Oreo,我有一个活动是launchMode=singleInstance。在安卓8 Oreo上,大约30%的时间我会得到两次单独的活动发布。它们是不同的对象实例,当启动第二个实例时,第一个实例不会获得onNewIntent() 另外,如果我从第二个启动的活动中查询ActivityManager,则第一个不会报告 我确实从后台服务开始活动,因为其中涉及一些推送消息 我还记录日志以确保只有一个context.startActivity()发生 在logcat中,发生这种情况时,我会看到以下警告 10-27

我有一个活动是launchMode=singleInstance。在安卓8 Oreo上,大约30%的时间我会得到两次单独的活动发布。它们是不同的对象实例,当启动第二个实例时,第一个实例不会获得onNewIntent()

另外,如果我从第二个启动的活动中查询ActivityManager,则第一个不会报告

我确实从后台服务开始活动,因为其中涉及一些推送消息

我还记录日志以确保只有一个context.startActivity()发生

在logcat中,发生这种情况时,我会看到以下警告

10-27 18:38:49.153 379-3304/? W/ActivityManager: Activity ActivityRecord{a21333f u0 my.package.name/my.package.name.MyActivity t1409} being launched, but already in LRU list
这是Android O特有的,所有的东西都可以在以前的版本上使用


感谢任何帮助,我的头在墙上撞了一段时间。。。如果有一个已知的Android错误,请让我知道!我没有找到任何东西,最后我无法阻止第二个活动启动。我必须能够容忍两次启动活动

第一个活动将onCreate()转换为onResume(),然后它就消失了。就像真的没有暂停就走了一样()

第二个活动在第一个活动的onResume()之后获取onCreate()。第二种活动经历了正常的生命周期,而且很好

Android操作系统必须意识到它不应该启动第二个实例,所以它很难杀死第一个实例。。。诡异的