エミュレータでセカンダリEXTERNALストレージを使用することになります。ユーザーは外部ストレージまたは内部ストレージを選択できます。 Android build 26.0.2 YESマニフェストには権限があります。このコード行がランチャーアクティビティに含まれている場合、ストレージはデフォルトでINTERNAL helper = new DBHelper(this)になります。 ヘルパーは静的であると宣言されています。このコード行を使用する大きな利点は、アプリケーションが停止したとき、またはエミュレータでClear Allを使用してアプリケーションを終了したときに、RecyclerAdapterによってサポートされているArrayListのバインドされたデータが保持されることです。したがって、アクティビティで必要な場合を除いてヘルパー宣言を使用しないと、データベースからデータをリロードしてArrayListに移入する必要が生じます。これが私たちが失われた場所です。 ArrayListをロードするDBhelperのメソッドを呼び出そうとしました。以下の無駄なコードはListActivityにあります。アプリは、閉じられた後は常にMainActivityに戻ります。だから問題はどこでどのように私はデータベースからArrayListを再生成するコードを配置するのですか?ヘルパー宣言によって外部ストレージが保護されない
}// End of onCreate Bundle
@Override
protected void onResume() {
super.onResume();
helper = new DBHelper(this);
dbList = new ArrayList<>();
dbList = helper.getDataFromDB();
}
データがSDカードに保存された後にSDカードが利用できない場合はどうなりますか? –
@James_Duh AndroidはデフォルトでINTERNALストレージまたは最適なデザインでは、以前にEXTERNALストレージを使用していたことをユーザーに知らせて、その値をtxtファイルのどこかに格納するか、データベースに格納します – Grendel