为了账号安全,请及时绑定邮箱和手机立即绑定

重写“后退”按钮,使其充当“主页”按钮。

重写“后退”按钮,使其充当“主页”按钮。

慕婉清6462132 2019-07-02 15:38:22
重写“后退”按钮,使其充当“主页”按钮。在按后退按钮时,我希望我的应用程序进入停止状态,而不是被破坏的状态。在Android系统中博士它指出:.不是所有的活动都有当背靠背被按下时被破坏的行为.当用户开始在“音乐”应用程序中播放音乐,然后按回键时,应用程序将重写正常的回退行为,防止播放机活动被破坏,并继续播放音乐,即使其活动不再可见如何在自己的应用程序中复制此功能?我想肯定有三种可能性.。捕获后退按钮(如下所示),然后调用主按钮调用的任何方法。@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {     if ((keyCode == KeyEvent.KEYCODE_BACK)) {         Log.d(this.getClass().getName(), "back button pressed");     }     return super.onKeyDown(keyCode, event);}捕获后按钮按下,然后欺骗一个主按钮按下。捕获后退按钮,然后启动主屏幕的一个活动,有效地将我的应用程序的活动置于停止状态。编辑:我了解服务,并正在应用程序中使用与此问题相关的服务。这个问题是关于将活动置于停止状态,而不是按下后退按钮时被破坏的状态。
查看完整描述

3 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

大多数情况下,您需要创建一个服务在后台执行某些操作,并且您可以看到Activity简单地控制一下Service..(我相信音乐播放器的工作方式也是一样的,所以文档中的例子似乎有点误导。)如果是这样的话,那你的Activity能,会,可以finish和往常一样Service还会继续跑。

一个更简单的方法是捕获Back按下按钮和呼叫MoveTaskToBack(真)详情如下:

// 2.0 and above@Overridepublic void onBackPressed() {
    moveTaskToBack(true);}// Before 2.0@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);}

我认为首选的选择应该是活动正常完成,并且能够重新创建自己,例如,如果需要从服务读取当前状态。但moveTaskToBack有时可以作为一种快速的替代方法。

:正如DaveUnderAndroid2.0所指出的,Android 2.0引入了一个新的onBackPressed方法,以及这些建议如何处理后退按钮。


查看完整回答
反对 回复 2019-07-02
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

使用以下代码:

public void onBackPressed() {    
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_HOME);
    startActivity(intent);}


查看完整回答
反对 回复 2019-07-02
?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

如果你想抓住后面的按钮,看一看这篇文章发表在android开发者博客上。..它涵盖了在Android2.0中实现此操作的更简单的方法,以及在1.x和2.0上运行的应用程序实现此操作的最佳方法。

但是,如果您的活动被停止,它仍然可能会被杀死,这取决于设备上的内存可用性。如果要在没有UI的情况下运行进程,则应创建Service有关服务的文档如下:

服务没有可视化的用户界面,而是在后台运行了一段不确定的时间。例如,服务可能在用户处理其他事项时播放背景音乐,也可能通过网络获取数据或计算某些内容,并将结果提供给需要它的活动。

这些似乎适合您的需求。


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 324 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信