- ベストアンサー
一時ファイルが削除されるタイミング
Androidアプリを作っています。 static File createTempFile(String prefix, String suffix, File directory) で作られた一時ファイルはOSが削除してくれますが、 削除するタイミングは何時でしょうか? iOSのrelase/retainのように参照が終わった時ですか? それともアプリが終了したとき? はたまた全く別のタイミングでしょうか? よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
File.deleteOnExit()を呼んだ場合、VM正常終了時に削除されます。 タスク管理系のアプリで強制終了した場合は削除されません。 Androidだとアプリが終了してもVMが終了しないので、アプリの中で System.exit() を呼んだり他にいくつか方法があるようですが、System.exit()は良くないみたいです。 AndroidではFile.createTempFile()はともかく、File.deleteOnExit()は実質使える条件がかなり限られますね。 自分でActivity.onDestroy()とかで削除するしかないのかな?
お礼
回答ありがとうございます。 Androidでこの方法で一時ファイルを使うときは、 作りっぱなしで放置はできないようですね。 ちゃんとonDestoryで削除しないとダメなようです。