通知开放活动和后退按钮?限制一个实例?

时间:2011-02-22 21:11:43

标签: android

我有一个与活动堆栈相关的情况,但我对Android开发人员来说已经足够新,现在还没有如何回应它。

我有一个像秒表一样的应用程序。当您启动它时,持续通知会进入通知托盘并一直持续,直到您停止秒表。我注意到,如果我的秒表在前台运行,并且我触摸通知,它会创建我的秒表活动的新实例并将旧的秒表滑出屏幕。这会产生后退按钮的问题(您按下后退,新实例消失以显示旧实例)。这是有道理的,为什么会发生这种情况,但我不希望它发生这样的事情。我该怎么做才能阻止我的应用程序的多个实例运行?

2 个答案:

答案 0 :(得分:4)

  

如何防止我的应用程序的多个实例运行?

Intent PendingIntent Notification setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);中使用setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);添加{{1}}或{{1}},无论哪种行为更符合您的需求。

答案 1 :(得分:1)

您也可以禁用后退按钮。不像CommonsWare解决方案那么优雅,但有些选项没有错!

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        return true;
    }

    return super.onKeyDown(keyCode, event);
}