我目前有一个活动,当它被显示时,通知也将显示在通知栏中。
这样,当用户按下home键并将活动推送到后台时,他们可以通过Notification返回到活动。
但是当用户尝试这样做时,我会得到空指针,因为它试图开始一个新的活动,而不是返回旧的活动。
因此,从本质上讲,我希望后退按钮的作用与Home按钮完全相同,以下是我目前所尝试的方法:
@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;
}
然而,上面的代码似乎仍然允许我的活动被销毁,当按下后退按钮时,我如何才能阻止我的活动被销毁?
发布于 2010-06-30 00:00:10
删除您的键侦听器,或者在拥有KEY_BACK
时返回true
。
你只需要下面的代码来捕获back键(确保不要在onBackPressed()
中调用SUPER键)。
此外,如果你计划在后台运行一个服务,一定要查看startForeground()
,并确保有一个持续的通知,否则如果需要释放内存,安卓将杀死你的服务。
@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);
}
发布于 2015-04-25 00:48:55
只需一行代码就可以更容易地实现它:
@Override
public void onBackPressed() {
moveTaskToBack(true);
}
发布于 2016-05-18 19:03:57
简单地这样做..
@Override
public void onBackPressed() {
//super.onBackPressed();
}
注释掉//super.onBackPressed();就可以了
https://stackoverflow.com/questions/3141996
复制相似问题