1
私は自分のアプリをfirebaseデータベースに接続し、以前に保存したイメージを表示します。それらはデータベースから検索され、アプリケーションの画面に問題なく表示されます。さらに、アプリケーションの実行中にそれらを保存したい。主なアクティビティライフサイクルから独立してローカルに保存して、アプリケーション全体が破棄されて再び開始されたときにのみローカルストレージからリロードするようにします。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になります。
どのように保存しますか?ファイル、Sqlite? Firebaseはローカルにキャッシュされていますか?明示的に何かを保存する必要はありますか? –
アクティビティを閉じるたびに、画像が破棄されて画像がリロードされます。私は、ユーザーが、アプリケーションが実行されるとアクティビティを開始するたびに、すべてのイメージをリロードする必要はありません。 私は物事を説明することに本当に悪いです。 一度ユーザーがアプリ全体を破壊すると、ローカルに保存されているすべての画像は破棄され、再度開くと再びアプリケーションに再ロードする必要があります。それが意味をなさない場合 –
アプリがローカルで実行されている間に画像ファイルを保存し、アプリが破棄されたら削除します。もう一度起動したら、それらをリロードしてください。 –