Вы можете определить, является ли ваше приложение видимым или нет, следующим образом:
Во всех ваших Activity
установите:
@Override
protected void onResume() {
super.onResume();
myVisibilityManager.setIsVisible(true);
}
@Override
protected void onPause() {
myVisibilityManager.setIsVisible(false);
super.onPause();
}
(это может привести к определениюсуперкласс для всех ваших действий, которые будут реализовывать это поведение)
Затем создайте VisibilityManager
(это очень просто, вам может понадобиться что-то более продвинутое):
public class VisibilityManager {
private boolean mIsVisible = false;
public void setIsVisible(boolean visible) {
mIsVisible = visible;
}
public boolean getIsVisible() {
return mIsVisible;
}
}
И затем,в вашей ветке таймера, когда обратный отсчет достиг нуля:
if (VisibilityManager.getIsVisible()) {
showAlertDialog();
}
else {
showNotification();
}
РЕДАКТИРОВАТЬ: но я даже предпочитаю подход CommonsWare, описанный здесь на этой странице.Это более элегантно.