首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android -如何覆盖"Back“按钮,使其不会结束()我的活动?

Android -如何覆盖"Back“按钮,使其不会结束()我的活动?
EN

Stack Overflow用户
提问于 2010-06-29 23:05:08
回答 10查看 377.9K关注 0票数 212

我目前有一个活动,当它被显示时,通知也将显示在通知栏中。

这样,当用户按下home键并将活动推送到后台时,他们可以通过Notification返回到活动。

但是当用户尝试这样做时,我会得到空指针,因为它试图开始一个新的活动,而不是返回旧的活动。

因此,从本质上讲,我希望后退按钮的作用与Home按钮完全相同,以下是我目前所尝试的方法:

代码语言:javascript
复制
        @Override
        public boolean onKeyDown(int keyCode, KeyEvent event)  {
            if (Integer.parseInt(android.os.Build.VERSION.SDK) < 5
                    && keyCode == KeyEvent.KEYCODE_BACK
                    && event.getRepeatCount() == 0) {
                Log.d("CDA", "onKeyDown Called");
                onBackPressed();
            }

            return super.onKeyDown(keyCode, event);
        }

        public void onBackPressed() {
            Log.d("CDA", "onBackPressed Called");
            Intent setIntent = new Intent(Intent.ACTION_MAIN);
            setIntent.addCategory(Intent.CATEGORY_HOME);
            setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startActivity(setIntent); 

            return;
        }   

然而,上面的代码似乎仍然允许我的活动被销毁,当按下后退按钮时,我如何才能阻止我的活动被销毁?

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2010-06-30 00:00:10

删除您的键侦听器,或者在拥有KEY_BACK时返回true

你只需要下面的代码来捕获back键(确保不要在onBackPressed()中调用SUPER键)。

此外,如果你计划在后台运行一个服务,一定要查看startForeground(),并确保有一个持续的通知,否则如果需要释放内存,安卓将杀死你的服务。

代码语言:javascript
复制
@Override
public void onBackPressed() {
   Log.d("CDA", "onBackPressed Called");
   Intent setIntent = new Intent(Intent.ACTION_MAIN);
   setIntent.addCategory(Intent.CATEGORY_HOME);
   setIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
   startActivity(setIntent);
}
票数 299
EN

Stack Overflow用户

发布于 2015-04-25 00:48:55

只需一行代码就可以更容易地实现它:

代码语言:javascript
复制
@Override
public void onBackPressed() {
   moveTaskToBack(true);
}
票数 80
EN

Stack Overflow用户

发布于 2016-05-18 19:03:57

简单地这样做..

代码语言:javascript
复制
@Override
public void onBackPressed() {
    //super.onBackPressed();
}

注释掉//super.onBackPressed();就可以了

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3141996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档