我正在编写应用程序并在内部存储中使用一些临时文件,例如(/myapp/files/tmp/*
)
文件是临时文件,在应用程序退出时被视为已过期。 清理此类文件的一些好方法是什么?
Application类中没有onDestroy()
。活动之间的交换意味着知道某个活动的onDestroy
何时退出活动或应用程序并非易事。此外,例如,当应用程序崩溃时,这些都不会被调用。它们不能保证被称为。
所以我在我的Application类实例onCreate
中清理那些文件(在AsyncTask
启动的onCreate
中)。
但对我来说似乎有点古怪。启动应用程序将启动一个线程,以删除先前使用中的不必要文件。有一个更好的方法吗?
Android上也不鼓励 file.deleteOnExit()
答案 0 :(得分:0)
您可以通过使用活动的生命周期来实现这一目标。
按照步骤操作。
1)创建扩展Activity或FragmentActivity的BaseActivity.java。
2)所有其他活动都将扩展BaseActivity。
3)现在你需要覆盖两个方法,比如
的onResume();
的onPause();
4)您的基本活动如何。
public abstract class BaseActivity extends Activity {
public static int actictyCounter=0;
@Override
protected void onResume() {
super.onResume();
actictyCounter++;
}
@Override
protected void onPause() {
super.onPause();
actictyCounter--;
// This was the last activity
if(actictyCounter==0){
//code to remove your temp files
}
}
}