【发布时间】:2018-01-30 16:11:42
【问题描述】:
直到现在(在 Android Oreo 之前)我一直在处理通过 Service.onTaskRemoved() 从应用最近删除,例如:
public class OnAppRemovedFromRecentListener extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return Service.START_NOT_STICKY;
}
@Override
public void onTaskRemoved(Intent rootIntent) {
super.onTaskRemoved(rootIntent);
// there I am handling removing from recents
}
}
但是现在当我在 Android Oreo 上运行应用程序时,我无法以任何方式实现相同的行为。尝试了 2 种方法:
- 如果仍在使用
Service,那么当应用处于后台时,服务会在一段时间不活动后被销毁,然后如果用户从最近的应用中删除应用,onTaskRemoved不会被调用。 - 如果从
Service切换到JobIntentService并通过JobIntentServiceLauncher.enqueueWork启动此服务,则 OnAppRemovedFromRecentListener 几乎立即被销毁,并且在从最近删除应用程序时也不会调用onTaskRemoved
有谁知道如何检测从 Android Oreo 上的最新应用中删除我的应用,这将始终有效?
【问题讨论】:
-
嗨,您找到任何解决方案了吗
-
很遗憾没有。关于您的答案的通知对我来说很容易 - 我认为有人找到了解决方案:P
-
您最终找到解决方案了吗?
-
任何解决方案??
标签: android android-8.0-oreo android-recents android-8.1-oreo