私は長年 (10 年) .NET 開発者であり、空き時間に初めて Android Java をプログラミングしています。私がプログラミングしているアプリケーションは、コース参加者の入力データ用のアプリです。コースのインストラクターはコース番号 (ファイル名の一部) を入力し、各参加者は自分の名前と生年月日を入力します。ですから、私の活動は2つあります。1 つはインストラクター用、もう 1 つは参加者用です。
最初のアクティビティはダウンロード フォルダにファイルを作成し、2 番目のアクティビティは CSV ファイルの末尾に参加者データを追加します。Java 構文は C# 構文に似ているため、これまでのところ C#.net 開発者にとっては問題ありません。アプリは 1 週間でプログラムされました。
しかし、テスト中に次の問題が発生します。生成された csv ファイルは、android ファイル エクスプローラーで android で表示でき、コンテンツは android で開くことができます。しかし、スマートフォンをデスクトップ PC に接続すると、csv ファイルが Windows ファイル エクスプローラーに表示されません。
スマートフォンを再起動すると、ファイルはWindowsファイルエクスプローラーにのみ表示されます。close メソッドでファイルを閉じてアプリケーションを終了しても、コードはリソースを解放していないようです。
次のコードで何が間違っていますか。
public boolean CreateFile() {
boolean OK = false;
File file = new File(_FileName);
if (!file.exists()) {
try {
if (file.createNewFile())
{
_StatusText.setText( "Status:Leere Kurs-Teilnehmer-Datei angelegt:\n" + _FileName + ".csv");
OK = true;
}
else
_StatusText.setText("Status:Datei nicht angelegt");
} catch (Exception e) {
_StatusText.setText("Status:Fehler:" + e.toString());
}
finally {
return OK;
}
}
else
{
_StatusText.setText("Status:Bereits Vorhandene Kursliste wird verwendet");
return true;
}
}
これは、csv ファイルの末尾に行を追加するためのコードです。
public static void AppendDataToCSV(String Filename, String Nachname, String Vorname, String Datum) throws IOException {
FileWriter out = null;
try {
StringBuilder textline = new StringBuilder();
textline.append(Nachname)
.append(";")
.append(Vorname)
.append(";")
.append(Datum)
.append("\n");
out = new FileWriter(Filename, true);
out.write(textline.toString());
}
finally {
if (out != null)
out.close();
}
}
これは、アプリケーションを終了するためのコードです。
private void ButtonEndeClick(){
_StatusText.setText("Ende");
finish();
System.exit(0);
}
アプリを閉じた後にすべてのリソースが確実に解放されるようにする方法を教えてください。
あなたの助けに感謝します:-)