没有通用的接口,各个程序还有用户每次的操作占用的内存大小都不一样。
只能每个应用自己单独加以清理。而且提供一个button效应清理事件是比较合理的,不是每个用户都希望清除下次再重新设置的。不能单单考虑更新方便,用户体验也很重要的吧

解决方案 »

  1.   

    那如果用button来清理的话,应该怎样清理阿?
      

  2.   

    不太懂你的意思。你是在应用里用到了静态变量了吗?如果是静态变量只有重启机器才能清除,或者在activity的onDesdroy里将这些变量设置成null。如果是普通数据,在你退出应用的时候,就成为垃圾了。
      

  3.   

    系统自带有Cache的清理工具就是删除Data下包名的cache文件夹内容
    Setting->Application->Manage applications 选你要清理缓存的应用有个clear cache按钮
      

  4.   

    /*创建缓存文件加权限<uses-permission android:name="android.permission.ACCESS_CACHE_FILESYSTEM" />*/
           File file = new File(this.getCacheDir(), "temp.txt");                  
            try {                     
             file.createNewFile();                     
             FileWriter fw = new FileWriter(file);                     
             BufferedWriter bw = new BufferedWriter(fw);                     
             bw.write("creat cache file");                     
             bw.newLine();                     
             bw.close();               
            } 
            catch (IOException e) 
            {                     
             System.out.println(e.getMessage());           
            }   
    /*删除cache文件*/
            File[] files = getCacheDir().listFiles();
        for (File f : files)
        {
           f.delete();
        }
      

  5.   

    没有这种接口吧,如果想退出程序就清理掉所有数据的话,
    就把所有的静态数据都改写到application里面吧,这样程序退出时就可以清理掉了。不过如果你用了数据库、SharedPreferences或者文件的话的话,那就要你在程序退出时手动清理掉那些数据了,另外在程序退出时执行一下System.exit(0)会使你的程序直接退出,而不会转入后台运行状态
      

  6.   

    灰常感谢五楼fontlose没有一句废话,实在
      

  7.   

    别介,我还没发言呢。
    LZ你想的问题我早已想过:blog.csdn.net/h3c4lenovo/article/details/8252588
        /* 
         * 文 件 名:  DataCleanManager.java 
         * 描    述:  主要功能有清除内/外缓存,清除数据库,清除sharedPreference,清除files和清除自定义目录 
         */  
        package com.archermind.DataClean;  
          
        import java.io.File;  
          
        import android.content.Context;  
        import android.os.Environment;  
          
        /** 
         * 本应用数据清除管理器 
         */  
        public class DataCleanManager {  
            /** 
             * 清除本应用内部缓存(/data/data/com.xxx.xxx/cache) 
             *  
             * @param context 
             */  
            public static void cleanInternalCache(Context context) {  
                deleteFilesByDirectory(context.getCacheDir());  
            }  
          
            /** 
             * 清除本应用所有数据库(/data/data/com.xxx.xxx/databases) 
             *  
             * @param context 
             */  
            public static void cleanDatabases(Context context) {  
                deleteFilesByDirectory(new File("/data/data/"  
                        + context.getPackageName() + "/databases"));  
            }  
          
            /** 
             * 清除本应用SharedPreference(/data/data/com.xxx.xxx/shared_prefs) 
             *  
             * @param context 
             */  
            public static void cleanSharedPreference(Context context) {  
                deleteFilesByDirectory(new File("/data/data/"  
                        + context.getPackageName() + "/shared_prefs"));  
            }  
          
            /** 
             * 按名字清除本应用数据库 
             *  
             * @param context 
             * @param dbName 
             */  
            public static void cleanDatabaseByName(Context context, String dbName) {  
                context.deleteDatabase(dbName);  
            }  
          
            /** 
             * 清除/data/data/com.xxx.xxx/files下的内容 
             *  
             * @param context 
             */  
            public static void cleanFiles(Context context) {  
                deleteFilesByDirectory(context.getFilesDir());  
            }  
          
            /** 
             * 清除外部cache下的内容(/mnt/sdcard/android/data/com.xxx.xxx/cache) 
             *  
             * @param context 
             */  
            public static void cleanExternalCache(Context context) {  
                if (Environment.getExternalStorageState().equals(  
                        Environment.MEDIA_MOUNTED)) {  
                    deleteFilesByDirectory(context.getExternalCacheDir());  
                }  
            }  
          
            /** 
             * 清除自定义路径下的文件,使用需小心,请不要误删。而且只支持目录下的文件删除 
             *  
             * @param filePath 
             */  
            public static void cleanCustomCache(String filePath) {  
                deleteFilesByDirectory(new File(filePath));  
            }  
          
            /** 
             * 清除本应用所有的数据 
             *  
             * @param context 
             * @param filepath 
             */  
            public static void cleanApplicationData(Context context, String... filepath) {  
                cleanInternalCache(context);  
                cleanExternalCache(context);  
                cleanDatabases(context);  
                cleanSharedPreference(context);  
                cleanFiles(context);  
                for (String filePath : filepath) {  
                    cleanCustomCache(filePath);  
                }  
            }  
          
            /** 
             * 删除方法 这里只会删除某个文件夹下的文件,如果传入的directory是个文件,将不做处理 
             *  
             * @param directory 
             */  
            private static void deleteFilesByDirectory(File directory) {  
                if (directory != null && directory.exists() && directory.isDirectory()) {  
                    for (File item : directory.listFiles()) {  
                        item.delete();  
                    }  
                }  
            }  
        }  
      

  8.   

    可以把基于基类的所有activity在退出时做了个销毁。释放内存,不过可能和楼主想要的不是一个问题。。
      

  9.   


    纠正:退出应用也可清除静态变量,前提是执行System.exit(0),否则不清除。