Apporter de l'application de l'arrière vers l'avant

Ma demande est un minuteur avec alarme type d'application.
Lorsque le délai expire, je voudrais attirer l'application principale de l'activité en vue, si l'utilisateur a navigué loin, mais l'application est toujours en cours d'exécution.

Je montre où je voudrais le code nécessaire:

   public class MyCount extends CountDownTimer {
        public MyCount(long millisInFuture, long countDownInterval) {
          super(millisInFuture, countDownInterval);
        }

        public void onFinish() {

         /** code here to bring the app back to the front /top of stack, in its current state */


         timeDisplay.setText("Expired.!");
         ReminderFlashingScreen.setVisibility(View.GONE);
         statustab.setBackgroundResource(R.drawable.redtab);
         seeker.setProgress(0);
         reset.setBackgroundResource(R.drawable.resetbtnoff);
         playExpiredAlarm(); 
         alarmAnimation.start();
         flasher.setVisibility(View.VISIBLE);
         StopAlarmButtonAnimation.start();
         StopAlarmButton.setVisibility(View.VISIBLE);
         expired = true;
        }

        public void onTick(long millisUntilFinished) {
            remindertimepref = prefs.getString("reminderTime", "<unset>");
            remindtime = Integer.parseInt(remindertimepref.trim());
            timeDisplay.setText(formatTime(millisUntilFinished));
            seeker.setProgress((int) (millisUntilFinished / 1000 / 60 ) + 1);
            if (used == true){
                reminder_time = ((int) (millisUntilFinished / 1000));
                if (reminder_time == remindtime){
                    reminderalarm();
                    used = false;
                    }
                }

          }
    }
  • Que faire si vous avez de l'utilisateur navigue à l'extérieur de quelque chose de plus gourmandes en mémoire et le système décide de tuer votre application? Mon point est, je pense que vous voulez mettre votre Minuterie dans un service. Ensuite, vous pouvez envoyer une émission qui votre application est à l'écoute pour quand le compte à rebours est terminé. Plus simple & plus propre!
  • Quelque chose que j'ai besoin de lire sur.. Nouvelle pour android, et ma première pensée est: Si l'application est tué, ce qui est en gardant le comte..? Je sais comment économiser de l'état actuel, mais ne sert à rien tant que le minuteur est en pause. Vous solution de sons comme la route que je devrais explorer, tous les pointeurs à ce que je devrais être à la recherche pour le / la recherche dans les, apprécié.
  • Pensez à utiliser l'android AlarmManager developer.android.com/intl/de/reference/android/app/... au lieu de garder une trace du temps-vous au moins l'utiliser après que vous recevez les onPause appel. Cela permettra d'économiser de l'utilisateur un grand nombre de la batterie et de l'utilisation du PROCESSEUR.
  • Merci les gars... Vos commentaires me donne des pistes à explorer.
  • si le "système décide de tuer votre application", alors autant que je sache, votre service est tué aussi. C'est pourquoi @Janusz la suggestion de l'utilisation de la AlarmManager est une meilleure suggestion. Même si l'application se fait tuer, il sera toujours en mesure d'être relancé.
  • Vous avez raison. AlarmManager est certainement le chemin à parcourir. Bien que Android fait redémarrer (collant) Services d'après le mémoire de la crise est passé.
  • Vrai. Et votre méthode va en fait beaucoup mieux comportés app - le AlarmManager est trop agressif pour la plupart des cas d'utilisation. Bon point.

InformationsquelleAutor 11Monkeys | 2010-12-11