Android - 如何捕捉到主页按钮被按下?

标签 android

我正在尝试捕捉用户按下主页按钮的时间。我以为我可以用

protected void onResume()
{
   registerReceiver(homeReceiver, new IntentFilter(Intent.CATEGORY_HOME));
}
...
private BroadcastReceiver homeReceiver = new BroadcastReceiver()
       {
          public void onReceive(Context context, Intent intent)
          {
             // logic here
          }
       };

但这似乎行不通。我知道会调用 onPause,但我的特定应用程序有一些逻辑需要单独处理。短篇小说基于一些信息进来,应用程序将向用户显示新的 Activity 。为了防止后退按钮问题,当每个 Activity 点击它的 onStop 时,它会自行调用完成。但是,如果用户按下主页按钮,我不希望 Activity 调用完成,以便当用户按下主屏幕上的应用程序图标或通过最近运行的应用程序列表时,最后一个 Activity 被带回。

我怀疑我把这件事弄得比计划的要复杂。任何建议表示赞赏。

最佳答案

我的英语不好(来自俄罗斯)。 是的,您无法捕捉到主页按钮的点击。我找到的唯一方法是读取日志 (logcat) 并解析结果。当 HOME Activity 运行时 - 下一条记录出现在 logcat 中:

开始 Activity :Intent { act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000000 cmp=com.android.launcher/.Launcher

您可以通过正则表达式解析此条目。所以,这是我发现点击主页的最佳方式

关于Android - 如何捕捉到主页按钮被按下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4101346/

相关文章:

java - 如何在用户使用 PageIndicator 跨选项卡滑动时创建文本淡入淡出效果

Android 在 Nexus 设备上隐藏软键

java - 'android.annotation.NonNull' 在 'android.annotation' 中不公开。无法从外部包访问

java - libGDX 纹理打包器 runnable-texturepacker.jar 无法打开

android - 如何从 Fragment TextView 打开 URL?

java - Android/Firebase : Glide not working inside one of my fragments

安卓位置: SO answers don't agree with Android Dev site

android - 在具有多行标题的选项卡上设置 fragment

android - 在 Android 9(API 级别 28)上配置 APNs

Android - 添加太多图像时应用程序崩溃