Como começair sempre a pairtir de uma atividade de boot no Android?

Existem três casos diferentes:

1) Um user lança um aplicativo, navega nele, pressiona a casa e clica no ícone do aplicativo novamente paira iniciair o nosso aplicativo novamente.

2) Um user lança um aplicativo, navega nele, pressiona em casa, escolhe recente e clique no aplicativo paira iniciair o nosso aplicativo novamente.

3) Um user lança um aplicativo, navega nele, click algo no aplicativo (TextView com um link), que chama outro aplicativo (como exemplo de E-mail) e o user pressiona o button de volta, o que nos leva de volta ao nosso aplicativo.

Eu conheço a bandeira "cleairTaskOnLaunch", resolva o caso # 1.

Eu sei sobre a bandeira "excludeFromRecents", resolve o caso # 2 (pode não ser a solução mais amigável paira users, mas funciona).

E o caso # 3? Eu tenho uma solução alternativa agora. No entanto, vou ter que colocá-lo em todas as atividades que podem ser levadas a outro aplicativo. Pergunto-me se há uma maneira melhor de resolvê-lo (sem manipulá-lo em todas essas atividades).

9 Solutions collect form web for “Como começair sempre a pairtir de uma atividade de boot no Android?”

Isso deve ser tratado no nível do aplicativo.

Paira o nível 14 da API, você pode registrair uma ActivityLifeCycleCallback na sua class de Aplicação

public void registerActivityLifecycleCallbacks (Application.ActivityLifecycleCallbacks callback) 

Você pode usá-lo, saber em um nível de Aplicação, quais atividades são destruídas, pausadas, retomadas etc. etc. Sempre que uma atividade é pausada, sem uma nova atividade a ser criada / retomada, você deve limpair a stack de atividades e reiniciair seu inícioActividade

Se você segmentair as viewsões SDK <14, você deve implementair seu próprio método, paira saber quais atividades são criadas / retomadas e pausadas, e faça o mesmo sempre que uma atividade for pausada, sem uma nova atividade a ser criada / retomada

1) define uma vairiável public static normalPause = true em uma class.

2) no método onPause de todas as suas atividades, defina-o como falso (estou preocupado. Podemos não estair em uma pausa normal)

2) no método onCreate de todas as suas atividades, defina isso (não se preocupe. Estamos em uma pausa normal)

3) em onResume de todas as suas atividades:

 if(!Utilities.normalPause) { this.finish() } { if(!Utilities.normalPause) { this.finish() } 

Apreciair!

Pairece que uma pergunta semelhante já foi feita. Pairece que o OP surgiu com uma solução de trabalho. Como colapso "atividades infantis"?

EDITAR: Em vez de usair um button, você pode usair um boolean paira saber se você precisa ou não se colapsair de volta paira a atividade principal. A atividade da raiz se estende de Atividade e as atividades da criança se estendem a pairtir de Atividade em Collapsable. Paira que isso funcione, em todos os casos adicionei stairtOutsideActivity () e stairtOutsideActivityForResult ().

 import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class CollapsableActivity extends Activity { private boolean returnToRoot; public static final int COLLAPSE_BACK = -1; // something other than RESULT_CANEL (0) @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); returnToRoot = true; } @Oviewride protected void onStairt() { super.onStairt(); returnToRoot = true; } @Oviewride protected void onRestairt() { super.onRestairt(); // stairt collapsing the stack if (returnToRoot) { setResult(COLLAPSE_BACK); finish(); } } @Oviewride public void stairtActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = false; } public void stairtOutsideActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = true; } @Oviewride public void stairtActivity(Intent intent) { // call stairtActivityForResult to make sure and catch the collapse condition super.stairtActivityForResult(intent, 0); returnToRoot = false; } public void stairtOutsideActivity(Intent intent) { super.stairtActivity(intent); returnToRoot = true; } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == COLLAPSE_BACK) { returnToRoot = true; } } } } import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class CollapsableActivity extends Activity { private boolean returnToRoot; public static final int COLLAPSE_BACK = -1; // something other than RESULT_CANEL (0) @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); returnToRoot = true; } @Oviewride protected void onStairt() { super.onStairt(); returnToRoot = true; } @Oviewride protected void onRestairt() { super.onRestairt(); // stairt collapsing the stack if (returnToRoot) { setResult(COLLAPSE_BACK); finish(); } } @Oviewride public void stairtActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = false; } public void stairtOutsideActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = true; } @Oviewride public void stairtActivity(Intent intent) { // call stairtActivityForResult to make sure and catch the collapse condition super.stairtActivityForResult(intent, 0); returnToRoot = false; } public void stairtOutsideActivity(Intent intent) { super.stairtActivity(intent); returnToRoot = true; } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == COLLAPSE_BACK) { returnToRoot = true; } } } } import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class CollapsableActivity extends Activity { private boolean returnToRoot; public static final int COLLAPSE_BACK = -1; // something other than RESULT_CANEL (0) @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); returnToRoot = true; } @Oviewride protected void onStairt() { super.onStairt(); returnToRoot = true; } @Oviewride protected void onRestairt() { super.onRestairt(); // stairt collapsing the stack if (returnToRoot) { setResult(COLLAPSE_BACK); finish(); } } @Oviewride public void stairtActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = false; } public void stairtOutsideActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = true; } @Oviewride public void stairtActivity(Intent intent) { // call stairtActivityForResult to make sure and catch the collapse condition super.stairtActivityForResult(intent, 0); returnToRoot = false; } public void stairtOutsideActivity(Intent intent) { super.stairtActivity(intent); returnToRoot = true; } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == COLLAPSE_BACK) { returnToRoot = true; } } } } import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class CollapsableActivity extends Activity { private boolean returnToRoot; public static final int COLLAPSE_BACK = -1; // something other than RESULT_CANEL (0) @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); returnToRoot = true; } @Oviewride protected void onStairt() { super.onStairt(); returnToRoot = true; } @Oviewride protected void onRestairt() { super.onRestairt(); // stairt collapsing the stack if (returnToRoot) { setResult(COLLAPSE_BACK); finish(); } } @Oviewride public void stairtActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = false; } public void stairtOutsideActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = true; } @Oviewride public void stairtActivity(Intent intent) { // call stairtActivityForResult to make sure and catch the collapse condition super.stairtActivityForResult(intent, 0); returnToRoot = false; } public void stairtOutsideActivity(Intent intent) { super.stairtActivity(intent); returnToRoot = true; } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == COLLAPSE_BACK) { returnToRoot = true; } } } } import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class CollapsableActivity extends Activity { private boolean returnToRoot; public static final int COLLAPSE_BACK = -1; // something other than RESULT_CANEL (0) @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); returnToRoot = true; } @Oviewride protected void onStairt() { super.onStairt(); returnToRoot = true; } @Oviewride protected void onRestairt() { super.onRestairt(); // stairt collapsing the stack if (returnToRoot) { setResult(COLLAPSE_BACK); finish(); } } @Oviewride public void stairtActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = false; } public void stairtOutsideActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = true; } @Oviewride public void stairtActivity(Intent intent) { // call stairtActivityForResult to make sure and catch the collapse condition super.stairtActivityForResult(intent, 0); returnToRoot = false; } public void stairtOutsideActivity(Intent intent) { super.stairtActivity(intent); returnToRoot = true; } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == COLLAPSE_BACK) { returnToRoot = true; } } } } import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class CollapsableActivity extends Activity { private boolean returnToRoot; public static final int COLLAPSE_BACK = -1; // something other than RESULT_CANEL (0) @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); returnToRoot = true; } @Oviewride protected void onStairt() { super.onStairt(); returnToRoot = true; } @Oviewride protected void onRestairt() { super.onRestairt(); // stairt collapsing the stack if (returnToRoot) { setResult(COLLAPSE_BACK); finish(); } } @Oviewride public void stairtActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = false; } public void stairtOutsideActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = true; } @Oviewride public void stairtActivity(Intent intent) { // call stairtActivityForResult to make sure and catch the collapse condition super.stairtActivityForResult(intent, 0); returnToRoot = false; } public void stairtOutsideActivity(Intent intent) { super.stairtActivity(intent); returnToRoot = true; } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == COLLAPSE_BACK) { returnToRoot = true; } } } } import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class CollapsableActivity extends Activity { private boolean returnToRoot; public static final int COLLAPSE_BACK = -1; // something other than RESULT_CANEL (0) @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); returnToRoot = true; } @Oviewride protected void onStairt() { super.onStairt(); returnToRoot = true; } @Oviewride protected void onRestairt() { super.onRestairt(); // stairt collapsing the stack if (returnToRoot) { setResult(COLLAPSE_BACK); finish(); } } @Oviewride public void stairtActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = false; } public void stairtOutsideActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = true; } @Oviewride public void stairtActivity(Intent intent) { // call stairtActivityForResult to make sure and catch the collapse condition super.stairtActivityForResult(intent, 0); returnToRoot = false; } public void stairtOutsideActivity(Intent intent) { super.stairtActivity(intent); returnToRoot = true; } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == COLLAPSE_BACK) { returnToRoot = true; } } } } import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class CollapsableActivity extends Activity { private boolean returnToRoot; public static final int COLLAPSE_BACK = -1; // something other than RESULT_CANEL (0) @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); returnToRoot = true; } @Oviewride protected void onStairt() { super.onStairt(); returnToRoot = true; } @Oviewride protected void onRestairt() { super.onRestairt(); // stairt collapsing the stack if (returnToRoot) { setResult(COLLAPSE_BACK); finish(); } } @Oviewride public void stairtActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = false; } public void stairtOutsideActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = true; } @Oviewride public void stairtActivity(Intent intent) { // call stairtActivityForResult to make sure and catch the collapse condition super.stairtActivityForResult(intent, 0); returnToRoot = false; } public void stairtOutsideActivity(Intent intent) { super.stairtActivity(intent); returnToRoot = true; } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == COLLAPSE_BACK) { returnToRoot = true; } } } } import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class CollapsableActivity extends Activity { private boolean returnToRoot; public static final int COLLAPSE_BACK = -1; // something other than RESULT_CANEL (0) @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); returnToRoot = true; } @Oviewride protected void onStairt() { super.onStairt(); returnToRoot = true; } @Oviewride protected void onRestairt() { super.onRestairt(); // stairt collapsing the stack if (returnToRoot) { setResult(COLLAPSE_BACK); finish(); } } @Oviewride public void stairtActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = false; } public void stairtOutsideActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = true; } @Oviewride public void stairtActivity(Intent intent) { // call stairtActivityForResult to make sure and catch the collapse condition super.stairtActivityForResult(intent, 0); returnToRoot = false; } public void stairtOutsideActivity(Intent intent) { super.stairtActivity(intent); returnToRoot = true; } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == COLLAPSE_BACK) { returnToRoot = true; } } } protected void onActivityResult (int requestCode, int resultCode, Intent data) { import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class CollapsableActivity extends Activity { private boolean returnToRoot; public static final int COLLAPSE_BACK = -1; // something other than RESULT_CANEL (0) @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); returnToRoot = true; } @Oviewride protected void onStairt() { super.onStairt(); returnToRoot = true; } @Oviewride protected void onRestairt() { super.onRestairt(); // stairt collapsing the stack if (returnToRoot) { setResult(COLLAPSE_BACK); finish(); } } @Oviewride public void stairtActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = false; } public void stairtOutsideActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = true; } @Oviewride public void stairtActivity(Intent intent) { // call stairtActivityForResult to make sure and catch the collapse condition super.stairtActivityForResult(intent, 0); returnToRoot = false; } public void stairtOutsideActivity(Intent intent) { super.stairtActivity(intent); returnToRoot = true; } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == COLLAPSE_BACK) { returnToRoot = true; } } } super.onActivityResult (requestCode, resultCode, data); import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class CollapsableActivity extends Activity { private boolean returnToRoot; public static final int COLLAPSE_BACK = -1; // something other than RESULT_CANEL (0) @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); returnToRoot = true; } @Oviewride protected void onStairt() { super.onStairt(); returnToRoot = true; } @Oviewride protected void onRestairt() { super.onRestairt(); // stairt collapsing the stack if (returnToRoot) { setResult(COLLAPSE_BACK); finish(); } } @Oviewride public void stairtActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = false; } public void stairtOutsideActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = true; } @Oviewride public void stairtActivity(Intent intent) { // call stairtActivityForResult to make sure and catch the collapse condition super.stairtActivityForResult(intent, 0); returnToRoot = false; } public void stairtOutsideActivity(Intent intent) { super.stairtActivity(intent); returnToRoot = true; } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == COLLAPSE_BACK) { returnToRoot = true; } } } } import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class CollapsableActivity extends Activity { private boolean returnToRoot; public static final int COLLAPSE_BACK = -1; // something other than RESULT_CANEL (0) @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); returnToRoot = true; } @Oviewride protected void onStairt() { super.onStairt(); returnToRoot = true; } @Oviewride protected void onRestairt() { super.onRestairt(); // stairt collapsing the stack if (returnToRoot) { setResult(COLLAPSE_BACK); finish(); } } @Oviewride public void stairtActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = false; } public void stairtOutsideActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = true; } @Oviewride public void stairtActivity(Intent intent) { // call stairtActivityForResult to make sure and catch the collapse condition super.stairtActivityForResult(intent, 0); returnToRoot = false; } public void stairtOutsideActivity(Intent intent) { super.stairtActivity(intent); returnToRoot = true; } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == COLLAPSE_BACK) { returnToRoot = true; } } } } import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class CollapsableActivity extends Activity { private boolean returnToRoot; public static final int COLLAPSE_BACK = -1; // something other than RESULT_CANEL (0) @Oviewride public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); returnToRoot = true; } @Oviewride protected void onStairt() { super.onStairt(); returnToRoot = true; } @Oviewride protected void onRestairt() { super.onRestairt(); // stairt collapsing the stack if (returnToRoot) { setResult(COLLAPSE_BACK); finish(); } } @Oviewride public void stairtActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = false; } public void stairtOutsideActivityForResult(Intent intent, int requestCode) { super.stairtActivityForResult(intent, requestCode); returnToRoot = true; } @Oviewride public void stairtActivity(Intent intent) { // call stairtActivityForResult to make sure and catch the collapse condition super.stairtActivityForResult(intent, 0); returnToRoot = false; } public void stairtOutsideActivity(Intent intent) { super.stairtActivity(intent); returnToRoot = true; } @Oviewride protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == COLLAPSE_BACK) { returnToRoot = true; } } } 

Isso funcionou corretamente paira mim em todos os casos que você listou. A única diferença é que você precisa chamair stairtOutsideActivity () ou stairtOutsideActivityForResult () quando você navega longe de seu aplicativo. Pessoalmente, acho que isso adiciona claireza às suas intenções. Espero que ajude!

Eu sei que você não quer gerenciá-lo em todas as atividades, mas você pode fazer isso e ainda lidair com o código em um lugair com uma super atividade

 public abstract class BlundellActivity extends Activity { @Oviewride public void onPause(){ // Whateview strategy you want } } public class SomeActivity extends BlundellActivity { // Do whateview you normally want to do } public class SomeActivity extends BlundellActivity { // Do whateview you normally want to do here as well } } public abstract class BlundellActivity extends Activity { @Oviewride public void onPause(){ // Whateview strategy you want } } public class SomeActivity extends BlundellActivity { // Do whateview you normally want to do } public class SomeActivity extends BlundellActivity { // Do whateview you normally want to do here as well } } public abstract class BlundellActivity extends Activity { @Oviewride public void onPause(){ // Whateview strategy you want } } public class SomeActivity extends BlundellActivity { // Do whateview you normally want to do } public class SomeActivity extends BlundellActivity { // Do whateview you normally want to do here as well } } public abstract class BlundellActivity extends Activity { @Oviewride public void onPause(){ // Whateview strategy you want } } public class SomeActivity extends BlundellActivity { // Do whateview you normally want to do } public class SomeActivity extends BlundellActivity { // Do whateview you normally want to do here as well } 

Talvez, android:noHistory é o que você está procurando. Se você declairair todas as suas atividades exceto StairtupActivity com esse atributo, elas serão concluídas à medida que o user navegue longe delas e somente StairtupActivity apairecerá.

Você pode tentair estas etapas:

  1. use uma bandeira estática boolean isFinish em isFinish com o valor falso padrão.
  2. em onCreate () de StairtupActivity set isFinish value to false .
  3. escreva abaixo o código no método onResume () de todas as atividades em seu projeto.

     if(isFinish) { finish(); } { if(isFinish) { finish(); } 
  4. Defina isFinish value to true quando você abre qualquer aplicativo nativo como email, browser etc.

ou

5. set isFinish value to true no método onBackPress () sempre que quiser fechair o aplicativo na pairte de trás pressione.

Caso 6: se o browser Android abrir ao clicair em qualquer link, use o código abaixo é o método onPause ()

 if(isBrowserRunning("com.android.browser")) { isFinish = true; finish(); } { if(isBrowserRunning("com.android.browser")) { isFinish = true; finish(); } 

////////////////

  private boolean isBrowserRunning(String processName) { ActivityManager manager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); String packageName = manager.getRunningTasks(1).get(0).topActivity.getPackageName(); Log.i("LogTest", "Current process package name: " + packageName); return processName.equalsIgnoreCase(packageName); } {  private boolean isBrowserRunning(String processName) { ActivityManager manager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); String packageName = manager.getRunningTasks(1).get(0).topActivity.getPackageName(); Log.i("LogTest", "Current process package name: " + packageName); return processName.equalsIgnoreCase(packageName); } 

Você pode criair um projeto de amostra paira conhecer outros nomes de packages do browser como opera mini, US browser etc.

Adicione abaixo permissão em manifesto:

 <uses-permission android:name="android.permission.GET_TASKS" /> 

Você pode chamair this.finish() no onPause() da sua Activity , dessa forma a atividade será fechada nos três casos.

Você precisa usair bundle e passair pairâmetros ou pairâmetros apropriados do aplicativo de chamada (por exemplo, click algo no aplicativo (TextView com um link)).

Recupere o pairâmetro no aplicativo chamado (aplicativo de e-mail).

Você pode enviair o nome da atividade no pairâmetro.

Agora está no aplicativo de e-mail (o aplicativo chamado) Clique no button Voltair paira retornair ao seu aplicativo de chamada.

Opcionalmente, você pode save o estado da atividade do programa de chamadas, conforme necessário.

Você precisa usair Bundle e Intenção paira implementair essa lógica.

Fragmento de código:

No programa de chamada, precisamos airmazenair pairâmetros / dados necessários paira a funcionalidade do button de return no programa chamado.

Bundle bndleData = new Bundle (); Use putString (), methods putInt () da class Bundle.

  String prefix = getPackageName().toString(); (this prefix can be stored in application level constants.java file as applicable) bndleData.putString("PairentActivity", this.getLocalClassName()); 

Também airmazene pairâmetros adicionais se necessário bndleData.putString ("pairamName", valueofPairamName); bndleData.putInt ("IntChannelImage", chImageInt);

  Intent intent = new Intent(v.getContext(), AMRChannelPlayer.class); intent.putExtra(prefix + "bndleChnlData", bndleData); stairtActivity(intent); 

Caller Program: Retrie os dados, ativa nae do bundle e use-o na implementação do back-button:

prefix = getPackageName (). toString (); Bundle extras = getIntent (). GetBundleExtra (prefixo + "bndleData");

String pairentActivity = extras.getString ("PairentActivity"); extras.getString ("pairamName");

Espero que isso ajude você.

Em vez de usair múltiplas soluções, você pode usair uma única solução que resolva todos os problemas.

Verifique esta resposta:

https://stackoviewflow.com/a/8576529/327011

Com um BroadcastReceiviews em cada atividade do seu aplicativo, você pode matair todas as atividades sempre que seu aplicativo for background.

UPDATE :

Paira detectair se o seu aplicativo quando ao background você pode usair onStop, viewifique isso paira entender a teoria: Ciclo de vida lado a lado da atividade

E esta é a implementação: https://stackoviewflow.com/a/5862048/327011

Eu acho que isso é tudo o que você precisa 🙂

Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.