我将我的应用程序连接到firebase数据库并显示我之前保存的图像。它们很好地从数据库中检索出来并在我的应用程序屏幕上显示没有问题。此外,我想在应用程序运行时保存它们。我希望它们可以独立于我的主要活动生命周期进行本地保存,这样只有在整个应用程序被销毁并重新启动时才能从本地存储中重新加载它们。
imageDownloadList = new ArrayList<>();
lv = (ListView) findViewById(R.id.listView);
progressDialog = new ProgressDialog(this);
progressDialog.setMessage("Images are downloading are loading please wait");
progressDialog.show();
mDatbaseRef = FirebaseDatabase.getInstance().getReference(Constants.FB_DATABASE_PATH);
mDatbaseRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
progressDialog.dismiss();
for(DataSnapshot snapshot: dataSnapshot.getChildren())
{
ImageDownload img = snapshot.getValue(ImageDownload.class);
imageDownloadList.add(img);
}
adapter = new ImageListAdapter(ImageViewActivity.this, R.layout.image_item, imageDownloadList);
lv.setAdapter(adapter);
}
所以这就是我获取图像的方法。但是我怎样才能保存图像数组。那就是imageDownloadList arrayList。
答案 0 :(得分:1)
一种简单的方法是将该图像转换为base64字符串并使用SharedPreferences或Sqlite进行保存。因此,当您再次打开应用程序时,您可以获取该base64字符串,转换为图像并显示它。