【问题标题】:What may cause an app to not detect properly a home button press soemtimes?什么可能导致应用程序有时无法正确检测到主页按钮按下?
【发布时间】:2021-12-24 13:10:19
【问题描述】:

我有一个应用程序,它在按下主页按钮时执行特定操作,大多数情况下检测到按下并成功执行操作。

但有时无明显原因未检测到印刷机。通过此接收器检测到压力:

@Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
                String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
                [...] 
                        if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {
                            mListener.onHomePressed();
                            [...]                        

                        }
                    }
                }
            }
        }

为什么会发生这样的事情?有什么办法让它在被按下时总是触发 onReceive?

【问题讨论】:

    标签: java android broadcastreceiver


    【解决方案1】:

    为什么会发生这样的事情?

    如果您的应用在后台并且您通过registerReceiver() 注册了接收器,您将不会收到该广播。另外,我不知道是否需要所有设备都发送该广播。另外,有些设备没有 HOME 按钮(例如 Chrome OS)。

    有什么方法可以让它在被按下时总是触发 onReceive?

    我不知道。

    我会更加专注于删除此功能。这样,您的应用更有可能与更多设备兼容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-06
      • 1970-01-01
      • 1970-01-01
      • 2014-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多