ActivityTwo.java no contó

Hola mi código fuente abajo abajo;

Se trata de ActiviyOne.java

package course.labs.activitylab; import android.app.Activity; import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class ActivityOne extends Activity { // Use these as keys when you're saving state between reconfigurations private static final String RESTART_KEY = "restart"; private static final String RESUME_KEY = "resume"; private static final String START_KEY = "start"; private static final String CREATE_KEY = "create"; // String for LogCat documentation private final static String TAG = "Lab-ActivityOne"; // Lifecycle counters // TODO: public Integer mCreate = 0; public Integer mRestart = 0; public Integer mStart = 0; public Integer mResume = 0; // Create variables named // mCreate, mRestart, mStart and mResume // to count calls to onCreate(), onRestart(), onStart() and // onResume(). These variables should not be defined as static. // You will need to increment these variables' values when their // corresponding lifecycle methods get called. // TODO: Create variables for each of the TextViews TextView mTvCreate; TextView mTvRestart; TextView mTvStart; TextView mTvResume; // named mTvCreate, mTvRestart, mTvStart, mTvResume. // for displaying the current count of each counter variable @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_one); // TODO: Assign the appropriate TextViews to the TextView variables mTvCreate = (TextView) findViewById(R.id.create); mTvRestart = (TextView) findViewById(R.id.restart); mTvResume = (TextView) findViewById(R.id.resume); mTvStart = (TextView) findViewById(R.id.start); // Hint: Access the TextView by calling Activity's findViewById() // textView1 = (TextView) findViewById(R.id.textView1); Button launchActivityTwoButton = (Button) findViewById(R.id.bLaunchActivityTwo); launchActivityTwoButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO: // Launch Activity Two // Hint: use Context's startActivity() method // Create an intent stating which Activity you would like to // start //Intent intent = null; Intent StartIntent = new Intent(getApplicationContext(), ActivityTwo.class); startActivity(StartIntent); // Launch the Activity using the intent } }); // Has previous state been saved? if(savedInstanceState != null) { // TODO: // Restore value of counters from saved state // Only need 4 lines of code, one for every count variable mCreate = savedInstanceState.getInt(CREATE_KEY); mStart = savedInstanceState.getInt(START_KEY); mRestart = savedInstanceState.getInt(RESTART_KEY); mResume = savedInstanceState.getInt(RESUME_KEY); //Log.i(TAG, "mCreate " + mCreate + "mResume " + mResume + "mStart " + mStart + "mRestart " + mRestart); //super.onSaveInstanceState(savedInstanceState); } // Emit LogCat message Log.i(TAG, "Entered the onCreate() method"); // TODO: mCreate++; displayCounts(); // Update the appropriate count variable // Update the user interface via the displayCounts() method } // Lifecycle callback overrides @Override public void onStart() { super.onStart(); // Emit LogCat message Log.i(TAG, "Entered the onStart() method"); // TODO: mStart++; displayCounts(); // Update the appropriate count variable // Update the user interface } @Override public void onResume() { super.onResume(); // Emit LogCat message Log.i(TAG, "Entered the onResume() method"); // TODO: mResume++; displayCounts(); // Update the appropriate count variable // Update the user interface } @Override public void onPause() { super.onPause(); // Emit LogCat message Log.i(TAG, "Entered the onPause() method"); } @Override public void onStop() { super.onStop(); // Emit LogCat message Log.i(TAG, "Entered the onStop() method"); } @Override public void onRestart() { super.onRestart(); // Emit LogCat message Log.i(TAG, "Entered the onRestart() method"); // TODO: mRestart++; displayCounts(); // Update the appropriate count variable // Update the user interface } @Override public void onDestroy() { super.onDestroy(); // Emit LogCat message Log.i(TAG, "Entered the onDestroy() method"); } @Override public void onSaveInstanceState(Bundle savedInstanceState) { // TODO: super.onSaveInstanceState(savedInstanceState); savedInstanceState.putInt(CREATE_KEY, mCreate); savedInstanceState.putInt(RESTART_KEY, mRestart); savedInstanceState.putInt(RESUME_KEY, mResume); savedInstanceState.putInt(START_KEY, mStart); // Save state information with a collection of key-value pairs // 4 lines of code, one for every count variable } // Updates the displayed counters // This method expects that the counters and TextView variables use the // names // specified above public void displayCounts() { // TODO - uncomment these lines mTvCreate.setText("onCreate() calls: " + mCreate); mTvStart.setText("onStart() calls: " + mStart); mTvResume.setText("onResume() calls: " + mResume); mTvRestart.setText("onRestart() calls: " + mRestart); } } 

Y esto es ActivityTwo.java

  package course.labs.activitylab; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class ActivityTwo extends Activity { // Use these as keys when you're saving state between reconfigurations private static final String RESTART_KEY = "restart"; private static final String RESUME_KEY = "resume"; private static final String START_KEY = "start"; private static final String CREATE_KEY = "create"; // String for LogCat documentation private final static String TAG = "Lab-ActivityTwo"; // Lifecycle counters // TODO: public Integer mCreate = 0; public Integer mRestart = 0; public Integer mStart = 0; public Integer mResume = 0; // Create variables named // mCreate, mRestart, mStart and mResume // to count calls to onCreate(), onRestart(), onStart() and // onResume(). These variables should not be defined as static. // You will need to increment these variables' values when their // corresponding lifecycle methods get called. // TODO: Create variables for each of the TextViews TextView mTvCreate; TextView mTvRestart; TextView mTvStart; TextView mTvResume; // named mTvCreate, mTvRestart, mTvStart, mTvResume. // for displaying the current count of each counter variable @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_two); // TODO: Assign the appropriate TextViews to the TextView variables mTvCreate = (TextView) findViewById(R.id.create); mTvRestart = (TextView) findViewById(R.id.restart); mTvStart = (TextView) findViewById(R.id.start); mTvResume = (TextView) findViewById(R.id.resume); // Hint: Access the TextView by calling Activity's findViewById() // textView1 = (TextView) findViewById(R.id.textView1); Button closeButton = (Button) findViewById(R.id.bClose); closeButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO: /* Intent FinishIntent = new Intent(ActivityTwo.this, ActivityOne.class); finish(); */ // This function closes Activity Two // Hint: use Context's finish() method // ActivityTwo.this.finish(); // finish(); // Intent tmpIntent = new Intent(getApplicationContext(), ActivityOne.class); finish(); //ActivityTwo.this.finish(); } }); /* savedInstanceState.putInt(CREATE_KEY, mCreate); savedInstanceState.putInt(RESTART_KEY, mRestart); savedInstanceState.putInt(RESUME_KEY, mResume); savedInstanceState.putInt(START_KEY, mStart); */ // Has previous state been saved? if(savedInstanceState != null) { // TODO: // Log.i(TAG, "Entered restoring values of counters"); super.onRestoreInstanceState(savedInstanceState); mCreate = savedInstanceState.getInt(CREATE_KEY); mStart = savedInstanceState.getInt(START_KEY); mRestart = savedInstanceState.getInt(RESTART_KEY); mResume = savedInstanceState.getInt(RESUME_KEY); //Log.i(TAG, "mCreate " + mCreate + "mResume " + mResume + "mStart " + mStart + "mRestart " + mRestart); // Restore value of counters from saved state // Only need 4 lines of code, one for every count variable // super.onSaveInstanceState(savedInstanceState); } // Emit LogCat message mCreate++; Log.i(TAG, "Entered the onCreate() method"); // TODO: displayCounts(); // Update the appropriate count variable // Update the user interface via the displayCounts() method } // Lifecycle callback methods overrides @Override public void onStart() { super.onStart(); // Emit LogCat message mStart++; Log.i(TAG, "Entered the onStart() method"); // TODO: displayCounts(); // Update the appropriate count variable // Update the user interface } @Override public void onResume() { super.onResume(); // Emit LogCat message mResume++; Log.i(TAG, "Entered the onResume() method"); // TODO: displayCounts(); // Update the appropriate count variable // Update the user interface } @Override public void onPause() { super.onPause(); // Emit LogCat message Log.i(TAG, "Entered the onPause() method"); } @Override public void onStop() { super.onStop(); // Emit LogCat message Log.i(TAG, "Entered the onStop() method"); } @Override public void onRestart() { super.onRestart(); // Emit LogCat message mRestart++; Log.i(TAG, "Entered the onRestart() method"); // TODO: displayCounts(); // Update the appropriate count variable // Update the user interface } @Override public void onDestroy() { super.onDestroy(); // Emit LogCat message Log.i(TAG, "Entered the onDestroy() method"); } @Override public void onSaveInstanceState(Bundle savedInstanceState) { // TODO: // Save counter state information with a collection of key-value pairs // 4 lines of code, one for every count variable Log.i(TAG, "Saving instance state"); super.onSaveInstanceState(savedInstanceState); savedInstanceState.putInt(CREATE_KEY, mCreate); savedInstanceState.putInt(RESTART_KEY, mRestart); savedInstanceState.putInt(RESUME_KEY, mResume); savedInstanceState.putInt(START_KEY, mStart); } // Updates the displayed counters // This method expects that the counters and TextView variables use the // names // specified above public void displayCounts() { // TODO - uncomment these lines mTvCreate.setText("onCreate() calls: " + mCreate); mTvStart.setText("onStart() calls: " + mStart); mTvResume.setText("onResume() calls: " + mResume); mTvRestart.setText("onRestart() calls: " + mRestart); } } 

Tengo un problema. Cuando ejecuto el programa quiero contar cuántas veces llamé

onCreate() , onStart() , onResume() , onResume() funciona para la actividad uno, pero no funciona en la actividad 2. Contador no funciona.

Gracias

3 Solutions collect form web for “ActivityTwo.java no contó”

1) El estado Activity1 se guarda en pila -> cuando llama a Activity2.

2) Cuando haga clic atrás, el estado Activity2 se guarda y luego se destruye (se elimina de la pila).

3) Activity1 lee el estado guardado de la pila.

Pruebe esto [Actividad 1]:

  launchActivityTwoButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent StartIntent = new Intent(getApplicationContext(), ActivityTwo.class); StartIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(StartIntent); } }); 

[Actividad 2]:

  closeButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent= new Intent(getApplicationContext(), ActivityOne.class); intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); startActivity(intent); } }); 

Ha creado los contadores como variables locales.

 public Integer mCreate = 0; public Integer mRestart = 0; public Integer mStart = 0; public Integer mResume = 0; 

Por lo tanto, después de Actividad2 se destruye, es decir, después onStop () se llama, estas variables también se eliminan.

Solución: Crear una nueva clase y crear variables de contador estático dentro de este.

  super.onRestoreInstanceState(savedInstanceState); 

No debe llamar a este método en onCreate() .

También debe utilizar ActivityOne.this lugar de getApplicationContext() para su Intent que inicia ActivityTwo .

  • GCM de Android InstanceId.getToken () -> java.io.IOException: TIMEOUT
  • ¿Cuándo se llama onAttach durante el Fragment LifeCycle?
  • ¿Hay una manera de convertir una aplicación de Android en una aplicación de escritorio?
  • Nuevo PhoneGap 3.0 No se puede resolver la importación org.apache.cordova
  • Deslizar hacia la izquierda, derecha, arriba y abajo dependiendo de la velocidad u otras variables
  • Android SignalR debe implementarse como Service o IntentService?
  • Aplicar transformaciones de matriz a BoundingBox
  • Pointer Size - ¿Qué tamaño tiene una referencia de objeto?
  • Se pierde la biblioteca del sistema JRE de Android (java.awt. *)
  • Google Maps de Google - Error al inflar el fragmento de clase
  • ¿Puede un futuro programado causar una pérdida de memoria?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.