Wie man einen Booleschen zwischen den Intentionen passiert

Ich muss einen booleschen Wert an und abgeben und wieder zurück, wenn die Back-Taste gedrückt wird. Das Ziel ist es, den Booleschen zu setzen und eine Bedingung zu verwenden, um mehrere Starts einer neuen Absicht zu verhindern, wenn ein onShake-Ereignis erkannt wird. Ich würde SharedPreferences verwenden, aber es scheint, es spielt nicht nett mit meinem onClick-Code und ich bin mir nicht sicher, wie man das beheben kann. Irgendwelche Vorschläge würden geschätzt!

public class MyApp extends Activity { private SensorManager mSensorManager; private ShakeEventListener mSensorListener; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mSensorListener = new ShakeEventListener(); mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_UI); mSensorListener.setOnShakeListener(new ShakeEventListener.OnShakeListener() { public void onShake() { // This code is launched multiple times on a vigorous // shake of the device. I need to prevent this. Intent myIntent = new Intent(MyApp.this, NextActivity.class); MyApp.this.startActivity(myIntent); } }); } @Override protected void onResume() { super.onResume(); mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_UI); } @Override protected void onStop() { mSensorManager.unregisterListener(mSensorListener); super.onStop(); }} 

  • APK Signierungsfehler: Fehler beim Lesen des Keystores
  • Warum bekomme ich "Failed to Bounce to Type", wenn ich JSON von Firebase in Java-Objekte umwandeln?
  • Databinding-Fehler: Es sind nur ein Layout-Element und ein Datenelement erlaubt.
  • Android Studio Gradle Build fehlgeschlagen. Fehler: Ursache: Peer nicht authentifiziert
  • AlertDialog-Schaltflächen ausrichten
  • Wie kann man sicherstellen, dass sich das ausgewählte Bild nach dem Neustart von Android nicht ändert?
  • Wie rufe ich Startaktivität an oder rufe Absicht von onitemclick Ereignis der Listenansicht im Fragment an?
  • Ist es möglich, mehrere AsyncTask gleichzeitig laufen zu lassen?
  • Entfernen von Hintergrundfarbe einer Ansicht in Android
  • Rufen Sie die Nummer von Android App aus Native rufende App programmgesteuert an
  • ACCESS_COARSE_LOCATION-Berechtigung gibt eine Zellenturm-Präzision auf Android
  • FileNotFoundException mit Universal Image Loader
  • 2 Solutions collect form web for “Wie man einen Booleschen zwischen den Intentionen passiert”

    Haben eine private Mitgliedsvariable in deiner Aktivität namens isShaken.

     private boolean wasShaken = false; 

    Ändern Sie Ihre onResume, um diese auf false zu setzen.

     public void onResume() { wasShaken = false; } 

    In deinem Onshow-Zuhörer, ob es wahr ist. Wenn es ist, früh zurückkehren Dann setzen Sie es auf true.

      public void onShake() { if(wasShaken) return; wasShaken = true; // This code is launched multiple times on a vigorous // shake of the device. I need to prevent this. Intent myIntent = new Intent(MyApp.this, NextActivity.class); MyApp.this.startActivity(myIntent); } }); 

    Absicht einstellen (mit putExtra):

     Intent intent = new Intent(this, NextActivity.class); intent.putExtra("yourBoolName", true); 

    Absicht extra abrufen:

     @Override protected void onCreate(Bundle savedInstanceState) { Boolean yourBool = getIntent().getExtras().getBoolean("yourBoolName"); } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.