我从这个例子中尝试过 https://stackoverflow.com/a/9472019/485978
我有一个服务,这个服务直接连接到数据库,我把所有数据放在这个类中的一个 bean 中。
public class ServiceApplication extends Application {
private static ServiceApplication mInstance;
public ServiceApplication() {
super();
}
public static ServiceApplication getInstance() {
return mInstance;
}
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
}
private Person personalData;
public Person getPersonalData() {
return personalData;
}
public void setPersonalData(Person personalData) {
this.personalData = personalData;
}
}
从数据库中检索数据时,我使用了 AsyncTask,其中 doBackground() 这是代码
ServiceApplication.getInstance().setPersonalData(personalData);
Log.d("AndroidService", "First name: "+ ServiceApplication.getInstance().getPersonalData().getFirstName());
到目前为止,它可以检索到名字。
但是,当我尝试从另一个活动访问这些数据时,我得到的都是空的。
我尝试了两种方法,但它产生 null
第一次实现:
ServiceApplication app = (ServiceApplication) getApplication();
String name = (app.getPersonalData() != null) ? app.getPersonalData().getFirstName().trim() : "user";
第二种实现:
String name = (ServiceApplication.getInstance().getPersonalData() != null) ? ServiceApplication.getInstance().getPersonalData().getFirstName().trim() : "user";
你们不知道如何保存数据以及如何从其他活动中检索数据吗?