Android - 双击主页按钮作为默认操作

Posted

技术标签:

【中文标题】Android - 双击主页按钮作为默认操作【英文标题】:Android - Double tap home button as default action 【发布时间】:2021-03-23 09:49:23 【问题描述】:

我目前正在实现一个 android 应用程序。当我按下主页/概览按钮时,应用程序默认暂停(显示第二个应用程序概览)。我注意到最近的 android 版本中的大多数应用程序都可以双击主页和概览按钮。具体来说,当按下主页/概览按钮时,它会弹出一条吐司消息“再次点击退出”。这是主页/概览按钮的默认操作吗?如果是这样,我如何在我的应用程序中启用它?如果没有,我可以覆盖默认行为吗?在各种帖子中都提到无法替换主页/概览按钮操作,因为它们是系统默认的(这就是为什么没有像 onBackPressed 这样的后退按钮处理方法的原因)。

【问题讨论】:

不,我指的是主页和概览按钮。“(这就是为什么没有像 onBackPressed 那样的后退按钮处理方法)”。我在手机中安装的大多数全屏应用程序都能够在按下主页或概览按钮后弹出敬酒消息。 此外,所有这些应用程序都会以某种方式获得一个默认的退出消息,该消息取决于电话系统语言。有人可以通过应用找到系统默认消息吗? 他们可能会在暂停或恢复时显示内部敬酒。至于语言的东西,就是一个字符串。 @PrinceAli 你说“至于语言,它是一个字符串”。您的意思是位于某处的系统默认字符串,或在代码中定义的字符串或作为 strings.xml 中的值。我很确定这不是第二个,因为我测试了各种应用程序,用各种语言实现,它们以系统语言显示退出 toast 消息。例如,我将手机语言设置为法语,对于以英语和其他语言(但不是法语)实现的应用程序,toast 退出消息以法语显示。 如何判断strings.xml中没有实现法语翻译? 【参考方案1】:

在您的 MainActivity 中,在 onPause/onResume 方法中。

@Override
    protected void onPause() 
        showToast("You paused the activity");
        super.onPause();
    
    
    @Override
    protected void onResume() 
        showToast("You resumed the activity");
        super.onResume();
    
    
    
    private void showToast(String str) 
        Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
    

当您按下返回、主页或概览按钮 (onPause) 时,之前的方法会显示一条提示消息,说明您暂停了活动。 同样,如果您重新进入应用程序,它将显示您已恢复活动。

【讨论】:

正如您所说,一旦应用程序暂停,这将显示祝酒词,而不是按下主页或概览按钮。我想要一个功能,一旦按下按钮就会显示祝酒词。如果应用程序由于其他原因暂停(即您因通话而离开应用程序),我不希望显示 toast 消息。我确信这是可行的,因为我手机中安装的许多应用程序都支持此功能。 完全有道理,但我还没有找到任何允许应用程序使用主页按钮的东西。好吧,至少现在还没有。

以上是关于Android - 双击主页按钮作为默认操作的主要内容,如果未能解决你的问题,请参考以下文章

MPMoviePlayerController 在后台播放airPlay,双击主页按钮时崩溃

如何更改ANDROID API 22中的默认向上按钮图标

Android - 是不是可以禁用长按主页按钮以避免任务管理器?

检测应用程序处于显示模式(双击主页按钮)[重复]

杀死进程时如何执行 logout() ?

主页和后退按钮在 android 模拟器像素 2 和像素 3 api 中不起作用