如何检测从最近列表中删除的应用程序?

Nar*_*nda 14 android android-recents

我正在开发一个音乐应用程序,我想在用户从最近的列表中删除应用程序时停止服务,而不是在第一个活动被销毁时停止服务(因为当用户点击回来直到应用程序最小化时,在这种情况下,第一个活动也是被摧毁).请帮忙.

Mys*_*icϡ 35

我想在用户从最近的列表中删除应用程序时停止服务.

是的,你可以使用stopWithTaskflag和trueManifest文件中的Service 来做到这一点.

例:

<service
    android:enabled="true"
    android:name=".MyService"
    android:exported="false"
    android:stopWithTask="true" />
Run Code Online (Sandbox Code Playgroud)

要么

如果您需要从最近列表中删除应用程序事件,并在停止服务之前执行某些操作,则可以使用以下命令:

<service
    android:enabled="true"
    android:name=".MyService"
    android:exported="false"
    android:stopWithTask="false" />
Run Code Online (Sandbox Code Playgroud)

因此,您的服务方法onTaskRemoved将被调用.(请记住,如果设置stopWithTask为,则不会调用它true).

public class MyService extends Service {

    @Override
    public void onStartService() {
        //your code
    }

    @Override
    public void onTaskRemoved(Intent rootIntent) {
        System.out.println("onTaskRemoved called");
        super.onTaskRemoved(rootIntent);
        //do something you want
        //stop service
        this.stopSelf();
    }
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

  • 为什么onTaskRemoved没有调用i实现与上面提到的相同 (4认同)
  • 虽然这完美地回答了这个问题,但它确实感觉它不是音乐应用的最佳方法.特别是,如果我想在听音乐的同时做其他的事情.我强烈考虑将"已启动"/"绑定"服务与持续通知结合使用 (2认同)