3

直到现在(在 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种方法:

  1. 如果仍在使用Service,则在应用程序处于后台时不活动一段时间后,服务将被销毁,然后如果用户从最近删除的应用程序onTaskRemoved不会被调用。
  2. 如果通过 then 切换ServiceJobIntentService启动此服务,JobIntentServiceLauncher.enqueueWork则 OnAppRemovedFromRecentListener 几乎立即被销毁,并且在从最近onTaskRemoved删除应用程序时也不会调用

有谁知道如何检测从 Android Oreo 上的最新应用程序中删除我的应用程序,这将始终有效?

4

1 回答 1

0

如果您使用活动,我认为您可以使用 onDestroy() 或 onStop() 方法来正确检测应用程序的清理或关闭

于 2018-01-30T16:14:57.357 回答