Android8.1 SystemUI中Recents(多任务),"全部清除"按钮点击事件简单梳理

最近有一个需求,
现象:播放音乐时,点击多任务中的“全部清除”按钮,音乐未停止;
预期:音乐停止。

于是去看看这个按钮的点击事件,本来以为这就是一个简单的onclick事件,可是并没有这么简单,首先找到这个按钮:
com.android.systemui.recents.views.RecentsView中的mStackActionButton,这个就是按钮的对象了,可是这个按钮并没有找到onclick事件,所以猜测是不是在onTouchEvent中处理的
com.android.systemui.recents.views.RecentsView -> onTouchEvent()

@Override
    public boolean onTouchEvent(MotionEvent ev) {
        return mTouchHandler.onTouchEvent(ev);
    }

继续跟,RecentsViewTouchHandler这个类很像是专门处理recentsView的touch事件的
com.android.systemui.recents.views.RecentsViewTouchHandler ->onTouchEvent();

public boolean onTouchEvent(MotionEvent ev) {
        handleTouchEvent(ev);
        if (ev.getAction() == MotionEvent.ACTION_UP && mRv.getStack().getStackTaskCount() == 0) {
            EventBus.getDefault().send(new HideRecentsEvent(false, true));
        }
        return true;
    }

在com.android.systemui.recents.views.RecentsViewTouchHandler -> handleTouchEvent(ev)
中的ACTION_UP事件中找到了

            case MotionEvent.ACTION_UP:
            case MotionEvent.ACTION_CANCEL: {
                if (mRv.getStackActionButton().isPressed() && isWithinStackActionButton(evX, evY)) {
                    EventBus.getDefault().send(new DismissAllTaskViewsEvent());
                    consumed = true;
                }
  ......
            }

这里就是处理点击事件的地方了,继续跟到EventBus中
com.android.systemui.recents.events.EventBus -> send();

public void send(Event event) {
       ......
        queueEvent(event);
    }

com.android.systemui.recents.events.EventBus -> queueEvent();

 private void queueEvent(final Event event) {
        ArrayList<EventHan
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android设备,"recents"通常指的是最近活动应用程序的显示列表,可以通过长按"返回"按钮或从屏幕底部向上滑动来访问它。 如果您清除"recents"列表所有的应用程序,即使没有音乐播放器应用程序在列表显示,音乐可能仍然会在背景继续播放。 这种情况可能是由于以下几种原因引起的: 1. 后台播放:某些音乐应用程序具有后台播放功能,这意味着即使您不再使用它们,它们仍然可以在后台播放音乐。您可以通过从通知栏找到相关的音乐播放器通知,然后停止或关闭音乐播放。 2. 音频焦点:Android系统具有管理音频焦点的功能,这意味着即使您关闭或清除了所有的应用程序,其他应用程序也可能继续请求或保持音频焦点,并继续播放音乐。您可以通过在设置查找音频相关的选项来调整或关闭音频焦点。 3. 清除全部应用程序:如果您使用了"任务管理器"或类似的应用程序来清除所有的应用程序,这些应用程序可能会恢复运行并继续播放音乐。您可以尝试检查是否有此类应用程序在运行,并在设置或其它应用程序停止或禁用它们。 总的来说,如果您想完全停止播放音乐,可以尝试以下步骤: - 在"recents"列表找到相关的音乐应用程序,然后从列表向上滑动或左右滑动以关闭它。 - 从通知栏找到音乐播放器通知,并停止或关闭音乐播放。 - 在设置找到音频相关选项,并适当地调整或关闭它们。 - 检查是否有任务管理器类应用程序在后台运行,如果有,停止或禁用它们。 希望以上解答对您有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值