Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Firebase数据库将多个图像保存到本地存储_Java_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Java 从Firebase数据库将多个图像保存到本地存储

Java 从Firebase数据库将多个图像保存到本地存储,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我将我的应用程序连接到firebase数据库,并显示我以前保存的图像。它们从数据库中很好地检索到,并显示在我的应用程序屏幕上,没有任何问题。此外,我希望在应用程序运行时保存它们。我希望它们独立于我的主要活动生命周期保存在本地,这样,只有当整个应用程序被销毁并重新启动时,它们才能从本地存储中重新加载 imageDownloadList = new ArrayList<>(); lv = (ListView) findViewById(R.id.listView);

我将我的应用程序连接到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=newarraylist();
lv=(ListView)findViewById(R.id.ListView);
progressDialog=新建progressDialog(此);
setMessage(“正在下载的图像正在加载,请稍候”);
progressDialog.show();
mDatbaseRef=FirebaseDatabase.getInstance().getReference(Constants.FB_DATABASE_PATH);
mDatbaseRef.addValueEventListener(新的ValueEventListener(){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
progressDialog.disclose();
对于(DataSnapshot快照:DataSnapshot.getChildren())
{
ImageDownload img=snapshot.getValue(ImageDownload.class);
imageDownloadList.add(img);
}
adapter=新的ImageListAdapter(ImageViewActivity.this,R.layout.image_项,imageDownloadList);
低压设置适配器(适配器);
}

这就是我获取图像的方法。但是我如何保存图像数组。这就是imageDownloadList arrayList。

一个简单的方法是将图像转换为base64字符串,并使用SharedReferences或Sqlite保存。因此,当你再次打开应用程序时,你可以获取base64字符串,转换为图像并显示我t、

如何保存?文件,Sqlite?Firebase是本地缓存的,对吗?你需要显式保存任何东西吗?每次我关闭活动并且它被破坏时,图像都必须重新加载。我不希望用户在应用程序运行后每次启动活动时都必须重新加载所有图像。我真的不擅长解释事情。所以nce用户会销毁整个应用程序。本地存储的所有图像都会被销毁,并且在再次打开应用程序后必须重新加载到应用程序中。如果这样做有意义,请在应用程序在本地运行时保存图像文件,然后在应用程序被销毁后将其删除。在再次启动时重新加载图像。不清楚是什么数据图像艺术下载类。如果您想将位图图像保存到文件中,请尝试使用单个图像创建位图图像。然后您可以在Firebase Stuff中使用该代码。我来试试看会发生什么。谢谢