如何检测应用程序已从Android Oreo上的最新版本(概述屏幕)中删除?

时间:2018-01-30 16:11:42

标签: android android-8.0-oreo android-recents android-8.1-oreo

到目前为止(在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时,我无法以任何方式实现相同的行为。尝试了两种方法:

  1. 如果仍然使用Service,那么当应用处于后台时,如果用户从最近的onTaskRemoved移除了应用,那么服务会在一段时间不活动后被取消。
  2. 如果从Service切换到JobIntentService并通过JobIntentServiceLauncher.enqueueWork启动此服务,则几乎会立即销毁OnAppRemovedFromRecentListener,并且当从最近删除应用时,也不会调用onTaskRemoved
  3. 是否有人知道如何检测从Android Oreo上的最新版本删除我的应用程序,这将始终有效?

1 个答案:

答案 0 :(得分:0)

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