最近有个问题就是点击任务窗口的清除按钮后, WhatsApp任务也被清除了, 但是来了消息后没任何提醒了, 判断是后台任务被杀掉了,跟踪发现任务最终清除是在cleanUpRemovedTaskLocked函数里执行的, 执行完后并kill掉相关的service, 所以就判断了下
在清除任务后保留相关的service
frameworks/base/services/core/java/com/android/server/wm/ActivityStackSupervisor.java
void cleanUpRemovedTaskLocked(TaskRecord tr, boolean killProcess, boolean removeFromRecents) {
if (removeFromRecents) {
mRecentTasks.remove(tr); //清理任务
}
ComponentName component = tr.getBaseIntent().getComponent();
if (component == null) {
Slog.w(TAG, "No component for base intent of task: " + tr);
return;
}
+ /*Begin:清理掉whatsapp任务, 但是保留后台server, zyq 20200921*/
+ if ("com.whatsapp".equals(component.getPackageName())) {
+ return;
+ }
+ /*End:清理掉whatsapp任务, 但是保留后台server, zyq 20200921*/
测试清理任务后, 来WhatsApp消息能正常收到消息.
参考: https://blog.csdn.net/qq_30552095/article/details/87932081
本文地址:https://blog.csdn.net/hmily0917/article/details/108723889