Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓监听主页按钮_Android - Fatal编程技术网

Android 安卓监听主页按钮

Android 安卓监听主页按钮,android,Android,如果应用程序包含一些默认意图,是否可以唯一地侦听home按钮?我已选中“生命周期方法”,但它将在我启动“默认意图”和“主页”按钮时执行。一个活动可以有多个意图过滤器。因此,在清单中添加另一个类似于这样的意图过滤器,以监听home按钮 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.ca

如果应用程序包含一些默认意图,是否可以唯一地侦听home按钮?我已选中“生命周期方法”,但它将在我启动“默认意图”和“主页”按钮时执行。

一个活动可以有多个意图过滤器。因此,在清单中添加另一个类似于这样的意图过滤器,以监听home按钮

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.HOME" />
    <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

试试这个让我知道


当用户按下home(主页)按钮时 恢复我需要的手术 10年12月6日执行dbsycing–Sudeep SR 12点45分


听起来您想覆盖活动的onStop或onStart方法。除了home按钮之外,还有其他一些东西会导致应用程序退出(发送到后台)。后退按钮、摄像头按钮、来电、在下拉通知栏中选择项目。我认为你不想仅仅依靠主按钮退出案例。以下是在这些情况下可以参考的活动生命周期链接:

您可以使用全局静态布尔标志执行此操作,该标志将告诉您是否打算退出活动。 在任何“完成”过程中都需要升起该标志。(退出程序/按下后退键)。 以下是一个例子:

 /**
 *  Home Event
 */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        StaticClass.exitFlag = true;
        finish();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
public void onUserLeaveHint() { // not executed when answering a call
    if (StaticClass.exitFlag)
        StaticClass.exitFlag = false;
    else
        // Home was pressed!!!
    super.onUserLeaveHint();
}
/**
 *  End Home Event
 */
通过这种方式,您可以控制何时以及如何退出活动。 只有两种方法可以让活动在你不知情的情况下消失 这是通过接听电话或按Home键实现的。 此示例取消了使用onUserLeaveHint()事件应答调用的选项


祝你好运

@Varun出现此文件管理器的上下文菜单,并说使用Homebutton或应用程序完成您的操作,应用程序中没有任何内容是侦听的。现在,当我按下home按钮时,我的每个应用程序都会弹出它。这就是它的工作方式。由于现在有两个以上的应用程序监听home按钮,因此将显示一个弹出窗口来选择应用程序。由于您已将自己的应用程序设置为默认应用程序,因此只要单击“主页”按钮,就会启动自己的应用程序,或者清楚地告诉我您何时要覆盖“主页”按钮?当用户按下“主页”按钮并恢复操作时,我需要执行dbsycingOnstop和onStart。启动或结束新活动时,通常会使用其他生命周期方法按下home按钮,我需要唯一地识别用户按下home按钮,我认为生命周期方法对我没有帮助,因为我的应用程序包含lost的意图,所以使用生命周期方法很难识别。对于线程死灵术,很抱歉,但onUserLeaveHint()中有错误吗?代码的格式意味着super.onUserLeaveHint()应该被调用,而不管exitFlag的值是多少,但是如果exitFlag为false,代码将只执行super.onUserLeaveHint()。很抱歉,回复太晚了。。。但为了便于将来参考,else后面的一行表示插入自己的代码,“super…”行将位于if-else语句之外。