【发布时间】:2011-03-09 16:36:27
【问题描述】:
我目前有一个 Activity,当它显示时,通知也会显示在通知栏中。
这样当用户按下 home 键并将 Activity 推送到后台时,他们可以通过 Notification 回到 Activity。
当用户按下后退按钮时会出现问题,我的 Activity 被破坏但通知仍然存在,因为我希望用户能够按下后退但仍然能够通过通知进入 Activity。但是当一个用户尝试这个时,我得到空指针,因为它试图开始一个新的活动,而不是带回旧的活动。
所以基本上我希望后退按钮与主页按钮完全相同,这是我迄今为止尝试过的方式:
@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;
}
但是上面的代码似乎仍然允许我的 Activity 被销毁,当按下后退按钮时,如何阻止我的 Activity 被销毁?
【问题讨论】:
-
另外我认为你必须将代码更改为` if (Integer.parseInt(android.os.Build.VERSION.SDK) > 5
, the>。 -
即使你解决了这个问题,你仍然必须处理系统杀死你的应用程序的可能性,对吧?我的意思是,null 情况仍然可能吗?或者如果系统出于任何原因终止了您的应用程序,这是否也会删除您的通知?我认为这一定是个问题,因为即使应用程序不存在,通知的目的也是存在的。
标签: android android-activity nullpointerexception back-button onkeypress