• ベストアンサー

一時ファイルが削除されるタイミング

Androidアプリを作っています。 static File createTempFile(String prefix, String suffix, File directory) で作られた一時ファイルはOSが削除してくれますが、 削除するタイミングは何時でしょうか? iOSのrelase/retainのように参照が終わった時ですか? それともアプリが終了したとき? はたまた全く別のタイミングでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jaga39
  • ベストアンサー率100% (5/5)
回答No.1

File.deleteOnExit()を呼んだ場合、VM正常終了時に削除されます。 タスク管理系のアプリで強制終了した場合は削除されません。 Androidだとアプリが終了してもVMが終了しないので、アプリの中で System.exit() を呼んだり他にいくつか方法があるようですが、System.exit()は良くないみたいです。 AndroidではFile.createTempFile()はともかく、File.deleteOnExit()は実質使える条件がかなり限られますね。 自分でActivity.onDestroy()とかで削除するしかないのかな?

noname#210749
質問者

お礼

回答ありがとうございます。 Androidでこの方法で一時ファイルを使うときは、 作りっぱなしで放置はできないようですね。 ちゃんとonDestoryで削除しないとダメなようです。

関連するQ&A

専門家に質問してみよう