Я перешел по этой ссылке и успешно сделал синглтон-класс в Android. http://www.devahead.com/blog/2011/06/extending-the-android-application-class-and-dealing-with-singleton/
Проблема в том, что я хочу один объект. как у меня есть Деятельность A и Деятельность B. В Activity AI получить доступ к объекту из class
Singleton. Я использую объект и внес в него некоторые изменения.
Когда я перехожу к действию B и получаю доступ к объекту из класса Singleton, он дает мне инициализированный объект и не сохраняет изменений, которые я сделал в действии A. Есть ли другой способ сохранить изменения? Пожалуйста, помогите мне эксперты. Это MainActivity
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);
}
}
Это NextActivity
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
Класс
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
}
}
и MyApplication
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
}
}
Когда я запускаю этот код, я получаю Hello, который я инициализировал в Singleton
затем World, который я дал ему в MainActivity
и снова показывает Hello в NextActivity
в logcat. Я хочу, чтобы он снова показал мир в NextActivity
. Пожалуйста, помогите мне исправить это.