到目前为止(在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上运行app时,我无法以任何方式实现相同的行为。尝试了两种方法:
Service
,那么当应用处于后台时,如果用户从最近的onTaskRemoved
移除了应用,那么服务会在一段时间不活动后被取消。Service
切换到JobIntentService
并通过JobIntentServiceLauncher.enqueueWork
启动此服务,则几乎会立即销毁OnAppRemovedFromRecentListener,并且当从最近删除应用时,也不会调用onTaskRemoved
是否有人知道如何检测从Android Oreo上的最新版本删除我的应用程序,这将始终有效?
答案 0 :(得分:0)
如果您使用某个活动,我认为您可以使用onDestroy()或onStop()方法来正确检测应用程序的清理或关闭