我有一个与活动堆栈相关的情况,但我对Android开发人员来说已经足够新,现在还没有如何回应它。
我有一个像秒表一样的应用程序。当您启动它时,持续通知会进入通知托盘并一直持续,直到您停止秒表。我注意到,如果我的秒表在前台运行,并且我触摸通知,它会创建我的秒表活动的新实例并将旧的秒表滑出屏幕。这会产生后退按钮的问题(您按下后退,新实例消失以显示旧实例)。这是有道理的,为什么会发生这种情况,但我不希望它发生这样的事情。我该怎么做才能阻止我的应用程序的多个实例运行?
答案 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);
}