Singleton in Android

Ich bin diesem Link gefolgt und habe erfolgreich eine Singleton-Klasse in Android erstellt.http://www.devahead.com/blog/2011/06/extending-the-android-application-class-and-dealing-with-singleton/

Problem ist, dass ich ein einzelnes Objekt will. Als ob ich Aktivität A und Aktivität B hätte. In Aktivität A greife ich von Singleton aus auf das Objekt zuclass. Ich benutze das Objekt und habe einige Änderungen daran vorgenommen.

Wenn ich zu Aktivität B gehe und von Singleton Class aus auf das Objekt zugreife, wurde das Objekt initialisiert, und die in Aktivität A vorgenommenen Änderungen werden nicht beibehalten. Gibt es eine andere Möglichkeit, die Änderungen zu speichern? Bitte helfen Sie mir Experten. Das istMainActivity

public class MainActivity extends Activity {
protected MyApplication app;        
private OnClickListener btn2=new OnClickListener() {    
    @Override
    public void onClick(View arg0) {
        Intent intent=new Intent(MainActivity.this,NextActivity.class);
        startActivity(intent);              
    }
};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //Get the application instance
    app = (MyApplication)getApplication();

    // Call a custom application method
    app.customAppMethod();

    // Call a custom method in MySingleton
    Singleton.getInstance().customSingletonMethod();

    Singleton.getInstance();
    // Read the value of a variable in MySingleton
    String singletonVar = Singleton.customVar;

    Log.d("Test",singletonVar);
    singletonVar="World";
    Log.d("Test",singletonVar);

    Button btn=(Button)findViewById(R.id.button1);
    btn.setOnClickListener(btn2);
}

}

Das istNextActivity

public class NextActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_next);

        String singletonVar = Singleton.customVar;

        Log.d("Test",singletonVar);
        }}

Singleton Klasse

public class Singleton
{
private static Singleton instance;

public static String customVar="Hello";

public static void initInstance()
{
if (instance == null)
{
  // Create the instance
  instance = new Singleton();
}
}

public static Singleton getInstance()
{
 // Return the instance
 return instance;
 }

 private Singleton()
 {
 // Constructor hidden because this is a singleton
 }

 public void customSingletonMethod()
 {
 // Custom method
 }
 }

undMyApplication

public class MyApplication extends Application
{
@Override
public void onCreate()
{
super.onCreate();

 // Initialize the singletons so their instances
 // are bound to the application process.
 initSingletons();
 }

 protected void initSingletons()
 {
 // Initialize the instance of MySingleton
 Singleton.initInstance();
 }

 public void customAppMethod()
 {
 // Custom application method
}
}

Wenn ich diesen Code ausführe, erhalte ich Hallo, in dem ich initialisiert habeSingleton dann Welt, in der ich es gabMainActivity und zeigt wieder hallo inNextActivity in logcat. Ich möchte, dass es die Welt wieder zeigtNextActivity. Bitte helfen Sie mir, dies zu korrigieren.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage