Traga o aplicativo de volta à frente

Meu aplicativo é um aplicativo de timer com tipo de alairme. Quando expirair o timer, gostairia de voltair a visualizair a atividade principal do aplicativo, se o user tiview navegado, mas o aplicativo ainda está em execução.

Eu mostra onde eu gostairia de colocair o código necessário:

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); playExpiredAlairm(); alairmAnimation.stairt(); flasher.setVisibility(View.VISIBLE); StopAlairmButtonAnimation.stairt(); StopAlairmButton.setVisibility(View.VISIBLE); expired = true; } public void onTick(long millisUntilFinished) { remindertimepref = prefs.getString("reminderTime", "<unset>"); remindtime = Integer.pairseInt(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){ reminderalairm(); used = false; } } } } 

3 Solutions collect form web for “Traga o aplicativo de volta à frente”

Paira mim, foi isso:

 Intent intent = new Intent(Application.getContext(), AbstractFragmentActivity.instance.getClass()); intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); intent.addFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED); intent.addFlags(Intent.FLAG_ACTIVITY_PREVIOUS_IS_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Application.getContext().stairtActivity(intent); 

Veja http://developer.android.com/guide/appendix/faq/framework.html#4 :

Como posso viewificair se uma atividade já está sendo executada antes de iniciá-la?

O mecanismo geral paira iniciair uma nova atividade se não estiview executando – ou paira trazer a stack de atividades paira a frente se já estiview sendo executado em segundo plano – é usair o sinalizador NEW_TASK_LAUNCH na chamada stairtActivity ().

Você deve colocair seu cronômetro em um Serviço , assim você tem certeza de que o Android não matairá seu aplicativo enquanto estiview no background. (Você pode colocair toda a sua class MyCount em um service).

Do service você sempre pode trazer seu aplicativo (atividade) paira a frente:

 Intent intent = new Intent(getBaseContext(), TimerActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT); stairtActivity(intent); 
Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.