2012-01-27 6 views
0

File.listFiles()関数を使用してディレクトリからファイルのリストを取得するAndroidアクティビティがあります。これは、私が期待していた通りにファイルの配列を返します。このアクティビティには、別のアクティビティを開始するオプションがあり、ユーザは同じディレクトリに新しいファイルを作成できます。File.ListFilesはAndroidの古いファイルリストを返します

新しいファイルを作成した2番目のアクティビティから戻ると、File.listFiles()関数を再度呼び出して更新リストを取得しますが、返された配列には新しく生成されたファイルは含まれません。

私がアプリケーションを再起動すると、新しく作成されたファイルが含まれたファイルリストが正しいことになります。これは、アクティビティが結果をキャッシュしているか、ディレクトリを再チェックしていないかのようです。

誰かがこの問題を抱えていたか、それを修正する方法を知っていましたか?

多くのおかげで、

クリス

答えて

0

:あなたは、プログラムファイルを追加している場合は、このクラスを使用することができます。問題は、最初のアクティビティのonResume()の後に呼び出されたように見える、2番目のアクティビティのonStop()関数にファイルを書き込んでいるという事実が原因です。私はonBackButtonPress()を保存するコードをchnagedし、すべてが現在期待どおりに動作します。

0

システムは、新たなイメージ(およびその他)のファイルを見つけることが搭載されているSDカードをスキャンします。私は今、この問題を解決するために管理してきました

http://developer.android.com/reference/android/media/MediaScannerConnection.html

+0

しかし、sdcardの再スキャンは必要ですか?私はmediascannerが** Android **のために新しいファイルを知るために使われていると思った。 File.listFilesは標準のJava関数であり、Androidコードに依存するとは思っていませんでしたか? – Chris

+0

アンドロイドシステムを起動してスキャンを開始するには、sdカードがマウントされていることを示すメッセージをブロードキャストする必要があります。その後、アンドロイドシステムが自動的にこれを行います。 – jeet

関連する問題