我什么时候应该清理应用程序'临时文件?

时间:2014-03-28 09:42:47

标签: android caching storage temporary-files

我正在编写应用程序并在内部存储中使用一些临时文件,例如(/myapp/files/tmp/*

文件是临时文件,在应用程序退出时被视为已过期。 清理此类文件的一些好方法是什么?

Application类中没有onDestroy()。活动之间的交换意味着知道某个活动的onDestroy何时退出活动或应用程序并非易事。此外,例如,当应用程序崩溃时,这些都不会被调用。它们不能保证被称为。

所以我在我的Application类实例onCreate中清理那些文件(在AsyncTask启动的onCreate中)。

但对我来说似乎有点古怪。启动应用程序将启动一个线程,以删除先前使用中的不必要文件。有一个更好的方法吗?

Android上也不鼓励

file.deleteOnExit()

1 个答案:

答案 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
        }
    }

}