gpt4 book ai didi

android - 服务: onTaskRemoved not called if started with bindService

转载 作者:IT老高 更新时间:2023-10-28 23:23:45 27 4
gpt4 key购买 nike

我有一个服务,其中 onTaskRemoved()方法已实现。
使用 startService() 启动服务时函数onTaskRemoved()当通过滑动从最近的应用程序列表中删除应用程序时调用。

但如果服务以 bindService() 启动,然后 onTaskRemoved()从来没有打电话。

如何调用服务电话 onTaskRemoved()在使用 bindService() 启动后通过滑动从最近的应用程序列表中删除应用程序时?

如果开始,Android 会调用以下生命周期方法:

1. bindService():
Activity﹕ onCreate()
CustomService﹕ onCreate()
CustomService﹕ onStart()
CustomService﹕ onStartCommand()
CustomService﹕ onBind()
// Here we swipe to remove app from recent-apps-list
CustomService﹕ onTrimMemory()

2. startService():
ActivityA﹕ onCreate()
CustomService﹕ onCreate()
CustomService﹕ onStart()
CustomService﹕ onStartCommand()
CustomService﹕ onBind()
// Swipe to remove app from recent-apps-list
CustomService﹕ onTrimMemory()
CustomService﹕ onTaskRemoved() // <=====
CustomService﹕ onUnbind()

最佳答案

可以绑定(bind)或启动服务,或两者兼而有之。这取决于你如何实现 onStartCommandonBind 说文档。

http://developer.android.com/guide/components/services.html

但是,如果您希望您的服务在 IBinder 上同时保持并与客户交谈,那么只需启动该服务,然后绑定(bind)到它。

startService(new Intent(context, CustomerService.class));
// Bind to the service
bindService(new Intent(context, CustomerService.class),
mConnection, Context.BIND_AUTO_CREATE);

编辑 20220314。“操作系统的 future 版本”可能会在没有通知卡供用户与服务交互时终止服务。

...自从我回答这个问题以来发生了很多变化,我最近获得了投票,所以我来了。您希望您的服务在后台运行,有一个通知正在进行,并且用户可以在通知中与服务进行交互。您已经看到了音乐和视频通知上的播放暂停控件。如果没有通知,操作系统可能会终止您的服务。

关于android - 服务: onTaskRemoved not called if started with bindService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24127923/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com