Android 维护数组列表中数据的持久性
我有一个数组列表,其中有100条记录,是我在互联网可用期间获取的。当internet不可用时,我将从应用程序类实例获取它。以下是我的方法: 在解析步骤(当互联网可用时,解析数据后):Android 维护数组列表中数据的持久性,android,Android,我有一个数组列表,其中有100条记录,是我在互联网可用期间获取的。当internet不可用时,我将从应用程序类实例获取它。以下是我的方法: 在解析步骤(当互联网可用时,解析数据后): BApplication.bAppSession.setFindBData(findBDataList); public class BApplication extends Application { public static BAppSession bAppSession; @Overri
BApplication.bAppSession.setFindBData(findBDataList);
public class BApplication extends Application {
public static BAppSession bAppSession;
@Override
public void onCreate() {
bAppSession = new BAppSession(getApplicationContext());
}
}
public class BAppSession {
private Context context;
private ArrayList<FindMyBeerData> findMyBeerDataLast = new ArrayList<FindMyBeerData>();
public BeerAppSession(Context context) {
this.context = context;
}
public void setFindMyBeerData(ArrayList<FindMyBeerData> findMyBeerDataList){
this.findMyBeerDataLast = findMyBeerDataList;
}
public ArrayList<FindMyBeerData> getFindMyBeerData(){
return this.findMyBeerDataLast;
}
}
这是应用程序类:
BApplication.bAppSession.setFindBData(findBDataList);
public class BApplication extends Application {
public static BAppSession bAppSession;
@Override
public void onCreate() {
bAppSession = new BAppSession(getApplicationContext());
}
}
public class BAppSession {
private Context context;
private ArrayList<FindMyBeerData> findMyBeerDataLast = new ArrayList<FindMyBeerData>();
public BeerAppSession(Context context) {
this.context = context;
}
public void setFindMyBeerData(ArrayList<FindMyBeerData> findMyBeerDataList){
this.findMyBeerDataLast = findMyBeerDataList;
}
public ArrayList<FindMyBeerData> getFindMyBeerData(){
return this.findMyBeerDataLast;
}
}
这是我的课程:
BApplication.bAppSession.setFindBData(findBDataList);
public class BApplication extends Application {
public static BAppSession bAppSession;
@Override
public void onCreate() {
bAppSession = new BAppSession(getApplicationContext());
}
}
public class BAppSession {
private Context context;
private ArrayList<FindMyBeerData> findMyBeerDataLast = new ArrayList<FindMyBeerData>();
public BeerAppSession(Context context) {
this.context = context;
}
public void setFindMyBeerData(ArrayList<FindMyBeerData> findMyBeerDataList){
this.findMyBeerDataLast = findMyBeerDataList;
}
public ArrayList<FindMyBeerData> getFindMyBeerData(){
return this.findMyBeerDataLast;
}
}
公共类BAppSession{
私人语境;
私有ArrayList findMyBeerDataLast=新ArrayList();
公共啤酒节(上下文){
this.context=上下文;
}
public void setFindMyBeerData(ArrayList findMyBeerDataList){
this.findMyBeerDataLast=findMyBeerDataList;
}
公共ArrayList getFindMyBeerData(){
返回this.findMyBeerDataLast;
}
}
如何获取数据(脱机):
BApplication.bAppSession.setFindBData(findBDataList);
public class BApplication extends Application {
public static BAppSession bAppSession;
@Override
public void onCreate() {
bAppSession = new BAppSession(getApplicationContext());
}
}
public class BAppSession {
private Context context;
private ArrayList<FindMyBeerData> findMyBeerDataLast = new ArrayList<FindMyBeerData>();
public BeerAppSession(Context context) {
this.context = context;
}
public void setFindMyBeerData(ArrayList<FindMyBeerData> findMyBeerDataList){
this.findMyBeerDataLast = findMyBeerDataList;
}
public ArrayList<FindMyBeerData> getFindMyBeerData(){
return this.findMyBeerDataLast;
}
}
findMyBDataList=BApplication.bAppSession
.getFindMyBeerData()
问题:一切正常,但问题是当我从任务管理器中关闭应用程序并重新启动(当internet不可用时),我得到的ArrayList为空应用程序关闭时数据丢失
查询:即使应用程序被用户杀死,如何取回数据?建议我做同样的事情。从这个答案来看——很明显,当应用程序从任务管理器或系统本身终止时,不会调用任何事件
因此,更好的方法是在获取数据时保存数据。这将确保您的数据安全,无论您的应用程序是否被终止。下次登录时,可以加载保存的数据
对于存储数据,可以使用以下方法:
- 数据库SQLite:
- 档案
- 共享引用
如果您有一个
活动
,您可以将数据保存在onDestroy()中
call.s在应用程序终止之前对数据进行序列化,并在启动时加载数据?@DylanMeeus我有一个ArrayList可以保存它吗?@DylanMeeus或者你可以给我一个示例,说明如何对我的ArrayList数据执行序列化,以便在应用程序关闭后恢复时重新获取它吗?我有一个ArrayList可以吗是否保存?@GauravArora当然,您可以序列化对象并将其作为字符串写入。然后读回字符串,并初始化对象。你可以在这里看到一组很好的例子-