ในหลายๆ กรณี แอปของคุณจะสร้างไฟล์ที่แอปอื่นๆ ไม่จำเป็นต้องเข้าถึง หรือไม่ควรเข้าถึง โดยระบบจะจัดเตรียมตำแหน่งต่อไปนี้ไว้สำหรับจัดเก็บไฟล์ เฉพาะแอป ดังกล่าว
ไดเรกทอรีที่จัดเก็บข้อมูลภายใน: ไดเรกทอรีเหล่านี้มีทั้งตำแหน่งเฉพาะสำหรับจัดเก็บไฟล์ถาวร และอีกตำแหน่งสำหรับจัดเก็บข้อมูลแคช ระบบจะป้องกันไม่ให้แอปอื่นๆ เข้าถึงตำแหน่งเหล่านี้ และใน Android 10 (ระดับ API 29) ขึ้นไป ตำแหน่งเหล่านี้จะได้รับการเข้ารหัส ลักษณะดังกล่าวทำให้ตำแหน่งเหล่านี้เป็นที่ที่เหมาะสำหรับการจัดเก็บข้อมูลที่ละเอียดอ่อนซึ่งมีเพียงแอปของคุณเองเท่านั้นที่เข้าถึงได้
ไดเรกทอรีที่จัดเก็บข้อมูลภายนอก: ไดเรกทอรีเหล่านี้มีทั้งตำแหน่งเฉพาะสำหรับจัดเก็บไฟล์ถาวร และอีกตำแหน่งสำหรับจัดเก็บข้อมูลแคช แม้ว่าแอปอื่นจะเข้าถึงไดเรกทอรีเหล่านี้ได้ หากมีสิทธิ์ที่เหมาะสม แต่ไฟล์ที่จัดเก็บไว้ในไดเรกทอรีเหล่านี้ มีไว้สำหรับแอปของคุณเท่านั้น หากคุณต้องการสร้างไฟล์ ที่แอปอื่นๆ ควรเข้าถึงได้โดยเฉพาะ แอปของคุณควรจัดเก็บไฟล์เหล่านี้ไว้ใน ส่วนพื้นที่เก็บข้อมูลที่แชร์ของพื้นที่เก็บข้อมูลภายนอก แทน
เมื่อผู้ใช้ถอนการติดตั้งแอป ระบบจะนำไฟล์ที่บันทึกไว้ในพื้นที่เก็บข้อมูลเฉพาะแอปออก ด้วยเหตุนี้ คุณจึงไม่ควรใช้พื้นที่เก็บข้อมูลนี้เพื่อบันทึก สิ่งใดก็ตามที่ผู้ใช้คาดหวังว่าจะยังคงอยู่โดยไม่ขึ้นอยู่กับแอปของคุณ เช่น หากแอปอนุญาตให้ผู้ใช้ถ่ายภาพ ผู้ใช้จะคาดหวังว่าตนจะเข้าถึงภาพเหล่านั้นได้แม้หลังจากถอนการติดตั้งแอปของคุณแล้ว ดังนั้นคุณควร ใช้พื้นที่เก็บข้อมูลที่แชร์เพื่อบันทึกไฟล์ประเภทดังกล่าวลงใน คอลเล็กชันสื่อที่เหมาะสมแทน
ส่วนต่อไปนี้จะอธิบายวิธีจัดเก็บและเข้าถึงไฟล์ภายในไดเรกทอรีเฉพาะแอป
การเข้าถึงจากที่จัดเก็บข้อมูลภายใน
ระบบจะจัดเตรียมไดเรกทอรีภายในที่จัดเก็บข้อมูลภายในไว้สำหรับแต่ละแอป ซึ่งแอปสามารถใช้จัดระเบียบไฟล์ของตนได้ โดยไดเรกทอรีหนึ่งออกแบบมาสำหรับ ไฟล์ถาวรของแอป และอีกไดเรกทอรีหนึ่งมี ไฟล์แคชของแอป แอปของคุณไม่จำเป็นต้องมีสิทธิ์ของระบบในการอ่านและเขียนไฟล์ในไดเรกทอรีเหล่านี้
แอปอื่นๆ จะเข้าถึงไฟล์ที่จัดเก็บไว้ภายในที่จัดเก็บข้อมูลภายในไม่ได้ ซึ่งทำให้ที่จัดเก็บข้อมูลภายในเป็นที่ที่เหมาะสำหรับข้อมูลแอปที่แอปอื่นๆ ไม่ควรเข้าถึง
อย่างไรก็ตาม โปรดทราบว่าไดเรกทอรีเหล่านี้มักจะมีขนาดเล็ก แอปของคุณควรตรวจสอบพื้นที่ว่างในอุปกรณ์ก่อนที่จะเขียนไฟล์เฉพาะแอปไปยังที่จัดเก็บข้อมูลภายใน
เข้าถึงไฟล์ถาวร
ไฟล์ถาวรทั่วไปของแอปจะอยู่ในไดเรกทอรีที่คุณ
เข้าถึงได้โดยใช้พร็อพเพอร์ตี้ filesDir
ของออบเจ็กต์บริบท เฟรมเวิร์กมีเมธอดหลายอย่างที่จะช่วยให้คุณเข้าถึงและจัดเก็บไฟล์ในไดเรกทอรีนี้
เข้าถึงและจัดเก็บไฟล์
คุณสามารถใช้ File API เพื่อเข้าถึงและจัดเก็บไฟล์
อย่าเปิดและปิดไฟล์เดียวกันหลายครั้งเพื่อช่วยรักษาประสิทธิภาพของแอป
ข้อมูลโค้ดต่อไปนี้แสดงวิธีใช้ File API
Kotlin
val file = File(context.filesDir, filename)
Java
File file = new File(context.getFilesDir(), filename);
จัดเก็บไฟล์โดยใช้สตรีม
คุณสามารถเรียกใช้
openFileOutput()
เพื่อรับ FileOutputStream ที่เขียน
ลงในไฟล์ภายในไดเรกทอรี filesDir แทนการใช้ File API
ข้อมูลโค้ดต่อไปนี้แสดงวิธีเขียนข้อความลงในไฟล์
Kotlin
val filename = "myfile" val fileContents = "Hello world!" context.openFileOutput(filename, Context.MODE_PRIVATE).use { it.write(fileContents.toByteArray()) }
Java
String filename = "myfile"; String fileContents = "Hello world!"; try (FileOutputStream fos = context.openFileOutput(filename, Context.MODE_PRIVATE)) { fos.write(fileContents.toByteArray()); }
Context.MODE_PRIVATE
หากต้องการอนุญาตให้แอปอื่นๆ เข้าถึงไฟล์ที่จัดเก็บไว้ใน
ไดเรกทอรีนี้ภายในที่จัดเก็บข้อมูลภายใน ให้ใช้
FileProvider ที่มีแอตทริบิวต์
FLAG_GRANT_READ_URI_PERMISSION
เข้าถึงไฟล์โดยใช้สตรีม
หากต้องการอ่านไฟล์เป็นสตรีม ให้ใช้
openFileInput()
Kotlin
context.openFileInput(filename).bufferedReader().useLines { lines -> lines.fold("") { some, text -> "$some\n$text" } }
Java
FileInputStream fis = context.openFileInput(filename); InputStreamReader inputStreamReader = new InputStreamReader(fis, StandardCharsets.UTF_8); StringBuilder stringBuilder = new StringBuilder(); try (BufferedReader reader = new BufferedReader(inputStreamReader)) { String line = reader.readLine(); while (line != null) { stringBuilder.append(line).append('\n'); line = reader.readLine(); } } catch (IOException e) { // Error occurred when opening raw file for reading. } finally { String contents = stringBuilder.toString(); }
ดูรายการไฟล์
คุณสามารถรับอาร์เรย์ที่มีชื่อไฟล์ทั้งหมดภายในfilesDir
ไดเรกทอรีได้โดยการเรียกใช้
fileList() ดังที่แสดงใน
ข้อมูลโค้ดต่อไปนี้
Kotlin
var files: Array<String> = context.fileList()
Java
Array<String> files = context.fileList();
สร้างไดเรกทอรีแบบซ้อน
นอกจากนี้ คุณยังสร้างไดเรกทอรีแบบซ้อนหรือเปิดไดเรกทอรีภายในได้โดยการเรียกใช้
getDir() ในโค้ดที่ใช้ Kotlin หรือโดยการส่งไดเรกทอรีรากและชื่อไดเรกทอรีใหม่ไปยังตัวสร้าง File
ในโค้ดที่ใช้ Java
Kotlin
context.getDir(dirName, Context.MODE_PRIVATE)
Java
File directory = context.getFilesDir(); File file = new File(directory, filename);
สร้างไฟล์แคช
หากต้องการจัดเก็บข้อมูลที่ละเอียดอ่อนไว้ชั่วคราวเท่านั้น คุณควรใช้ไดเรกทอรีแคชที่กำหนดของแอปภายในที่จัดเก็บข้อมูลภายในเพื่อบันทึกข้อมูล เช่นเดียวกับพื้นที่เก็บข้อมูลเฉพาะแอปทั้งหมด ระบบจะนำไฟล์ที่จัดเก็บไว้ในไดเรกทอรีนี้ออกเมื่อผู้ใช้ถอนการติดตั้งแอป แม้ว่าไฟล์ในไดเรกทอรีนี้อาจถูกนำออกเร็วกว่านั้น
หากต้องการสร้างไฟล์แคช ให้เรียกใช้
File.createTempFile()
Kotlin
File.createTempFile(filename, null, context.cacheDir)
Java
File.createTempFile(filename, null, context.getCacheDir());
แอปของคุณจะเข้าถึงไฟล์ในไดเรกทอรีนี้โดยใช้
cacheDir พร็อพเพอร์ตี้ของออบเจ็กต์บริบท
และ File API:
Kotlin
val cacheFile = File(context.cacheDir, filename)
Java
File cacheFile = new File(context.getCacheDir(), filename);
นำไฟล์แคชออก
แม้ว่าบางครั้ง Android จะลบไฟล์แคชด้วยตัวเอง แต่คุณไม่ควรพึ่งพาระบบในการล้างไฟล์เหล่านี้ให้ คุณควรดูแลรักษาไฟล์แคชของแอปภายในที่จัดเก็บข้อมูลภายในเสมอ
หากต้องการนำไฟล์ออกจากไดเรกทอรีแคชภายในที่จัดเก็บข้อมูลภายใน ให้ใช้วิธีใดวิธีหนึ่งต่อไปนี้
เมธอด
delete()ในออบเจ็กต์Fileที่แสดงไฟล์Kotlin
cacheFile.delete()
Java
cacheFile.delete();
เมธอด
deleteFile()ของบริบทของแอป โดยส่งชื่อไฟล์Kotlin
context.deleteFile(cacheFileName)
Java
context.deleteFile(cacheFileName);
การเข้าถึงจากพื้นที่เก็บข้อมูลภายนอก
หากที่จัดเก็บข้อมูลภายในมีพื้นที่ไม่เพียงพอสำหรับจัดเก็บไฟล์เฉพาะแอป ให้ลองใช้ที่จัดเก็บข้อมูลภายนอกแทน ระบบจะจัดเตรียมไดเรกทอรีภายใน พื้นที่เก็บข้อมูลภายนอกไว้สำหรับแอป ซึ่งแอปสามารถใช้จัดระเบียบไฟล์ที่เป็นประโยชน์ต่อผู้ใช้ ภายในแอปของคุณเท่านั้น โดยไดเรกทอรีหนึ่งออกแบบมาสำหรับ ไฟล์ถาวรของแอป และอีกไดเรกทอรีหนึ่งมี ไฟล์แคชของแอป
ใน Android 4.4 (ระดับ API 19) ขึ้นไป แอปของคุณไม่จำเป็นต้องขอสิทธิ์ที่เกี่ยวข้องกับพื้นที่เก็บข้อมูลเพื่อเข้าถึงไดเรกทอรีเฉพาะแอปภายในที่จัดเก็บข้อมูลภายนอก ระบบจะนำไฟล์ที่จัดเก็บไว้ในไดเรกทอรีเหล่านี้ออกเมื่อถอนการติดตั้งแอป
ในอุปกรณ์ที่ใช้ Android 9 (ระดับ API 28) หรือต่ำกว่า แอปของคุณจะเข้าถึงไฟล์เฉพาะแอปที่เป็นของแอปอื่นๆ ได้ โดยแอปของคุณต้องมีสิทธิ์เข้าถึงพื้นที่เก็บข้อมูลที่เหมาะสม เพื่อให้ผู้ใช้ควบคุมไฟล์ได้มากขึ้นและ จำกัดไม่ให้ไฟล์กระจัดกระจาย แอปที่กำหนดเป้าหมายเป็น Android 10 (API ระดับ 29) ขึ้นไปจะได้รับสิทธิ์ เข้าถึงพื้นที่เก็บข้อมูลภายนอกแบบจำกัดขอบเขต หรือ พื้นที่เก็บข้อมูลแบบจำกัดขอบเขต โดยค่าเริ่มต้น เมื่อเปิดใช้พื้นที่เก็บข้อมูลแบบจำกัดขอบเขต แอปจะเข้าถึงไดเรกทอรีเฉพาะแอปที่เป็นของแอปอื่นๆ ไม่ได้
ตรวจสอบว่ามีพื้นที่เก็บข้อมูล
เนื่องจากที่จัดเก็บข้อมูลภายนอกอยู่ในวอลุ่มจริงที่ผู้ใช้อาจนำออกได้ ให้ตรวจสอบว่าวอลุ่มเข้าถึงได้ก่อนที่จะพยายามอ่านหรือเขียนข้อมูลเฉพาะแอปจากที่จัดเก็บข้อมูลภายนอก
คุณสามารถตรวจสอบสถานะของวอลุ่มได้โดยการเรียกใช้
Environment.getExternalStorageState()
หากสถานะที่แสดงผลคือ
MEDIA_MOUNTED แสดงว่า
คุณอ่านและเขียนไฟล์เฉพาะแอปภายในพื้นที่เก็บข้อมูลภายนอกได้ หากสถานะคือ
MEDIA_MOUNTED_READ_ONLY,
แสดงว่าคุณอ่านไฟล์เหล่านี้ได้เท่านั้น
ตัวอย่างเช่น เมธอดต่อไปนี้มีประโยชน์ในการตรวจสอบความพร้อมใช้งานของพื้นที่เก็บข้อมูล
Kotlin
// Checks if a volume containing external storage is available // for read and write. fun isExternalStorageWritable(): Boolean { return Environment.getExternalStorageState() == Environment.MEDIA_MOUNTED } // Checks if a volume containing external storage is available to at least read. fun isExternalStorageReadable(): Boolean { return Environment.getExternalStorageState() in setOf(Environment.MEDIA_MOUNTED, Environment.MEDIA_MOUNTED_READ_ONLY) }
Java
// Checks if a volume containing external storage is available // for read and write. private boolean isExternalStorageWritable() { return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED); } // Checks if a volume containing external storage is available to at least read. private boolean isExternalStorageReadable() { return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED) || Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED_READ_ONLY); }
ในอุปกรณ์ที่ไม่มีพื้นที่เก็บข้อมูลภายนอกที่ถอดออกได้ ให้ใช้คำสั่งต่อไปนี้เพื่อเปิดใช้วอลุ่มเสมือนสำหรับการทดสอบตรรกะความพร้อมใช้งานของพื้นที่เก็บข้อมูลภายนอก
adb shell sm set-virtual-disk true
เลือกตำแหน่งพื้นที่เก็บข้อมูลจริง
บางครั้ง อุปกรณ์ที่จัดสรรพาร์ติชันของหน่วยความจำภายในเป็นพื้นที่เก็บข้อมูลภายนอกก็มีช่องเสียบการ์ด SD ด้วย ซึ่งหมายความว่าอุปกรณ์มีวอลุ่มจริงหลายรายการที่อาจมีพื้นที่เก็บข้อมูลภายนอก ดังนั้นคุณจึงต้องเลือกวอลุ่มที่จะใช้สำหรับพื้นที่เก็บข้อมูลเฉพาะแอป
หากต้องการเข้าถึงตำแหน่งต่างๆ ให้เรียกใช้
ContextCompat.getExternalFilesDirs()
ดังที่แสดงในข้อมูลโค้ด ระบบจะถือว่าองค์ประกอบแรกในอาร์เรย์ที่แสดงผลเป็นวอลุ่มพื้นที่เก็บข้อมูลภายนอกหลัก ให้ใช้วอลุ่มนี้ เว้นแต่ว่าวอลุ่มจะเต็มหรือใช้งานไม่ได้
Kotlin
val externalStorageVolumes: Array<out File> = ContextCompat.getExternalFilesDirs(applicationContext, null) val primaryExternalStorage = externalStorageVolumes[0]
Java
File[] externalStorageVolumes = ContextCompat.getExternalFilesDirs(getApplicationContext(), null); File primaryExternalStorage = externalStorageVolumes[0];
เข้าถึงไฟล์ถาวร
หากต้องการเข้าถึงไฟล์เฉพาะแอปจากพื้นที่เก็บข้อมูลภายนอก ให้เรียกใช้
getExternalFilesDir()
อย่าเปิดและปิดไฟล์เดียวกันหลายครั้งเพื่อช่วยรักษาประสิทธิภาพของแอป
ข้อมูลโค้ดต่อไปนี้แสดงวิธีเรียกใช้ getExternalFilesDir()
Kotlin
val appSpecificExternalDir = File(context.getExternalFilesDir(null), filename)
Java
File appSpecificExternalDir = new File(context.getExternalFilesDir(null), filename);
สร้างไฟล์แคช
หากต้องการเพิ่มไฟล์เฉพาะแอปไปยังแคชภายในพื้นที่เก็บข้อมูลภายนอก ให้รับการอ้างอิงไปยัง
externalCacheDir
Kotlin
val externalCacheFile = File(context.externalCacheDir, filename)
Java
File externalCacheFile = new File(context.getExternalCacheDir(), filename);
นำไฟล์แคชออก
หากต้องการนำไฟล์ออกจากไดเรกทอรีแคชภายนอก ให้ใช้เมธอด
delete() ในออบเจ็กต์ File ที่
แสดงไฟล์
Kotlin
externalCacheFile.delete()
Java
externalCacheFile.delete();
เนื้อหาสื่อ
หากแอปของคุณทำงานกับไฟล์สื่อที่เป็นประโยชน์ต่อผู้ใช้ภายในแอปของคุณเท่านั้น คุณควรจัดเก็บไฟล์เหล่านั้นไว้ในไดเรกทอรีเฉพาะแอปภายในพื้นที่เก็บข้อมูลภายนอก ดังที่แสดงในข้อมูลโค้ดต่อไปนี้
Kotlin
fun getAppSpecificAlbumStorageDir(context: Context, albumName: String): File? { // Get the pictures directory that's inside the app-specific directory on // external storage. val file = File(context.getExternalFilesDir( Environment.DIRECTORY_PICTURES), albumName) if (!file?.mkdirs()) { Log.e(LOG_TAG, "Directory not created") } return file }
Java
@Nullable File getAppSpecificAlbumStorageDir(Context context, String albumName) { // Get the pictures directory that's inside the app-specific directory on // external storage. File file = new File(context.getExternalFilesDir( Environment.DIRECTORY_PICTURES), albumName); if (file == null || !file.mkdirs()) { Log.e(LOG_TAG, "Directory not created"); } return file; }
คุณต้องใช้ชื่อไดเรกทอรีที่ระบุโดยค่าคงที่ API เช่น
DIRECTORY_PICTURES
ชื่อไดเรกทอรีเหล่านี้จะช่วยให้ระบบจัดการไฟล์ได้อย่างถูกต้อง
หากไม่มีชื่อไดเรกทอรีย่อยที่กำหนดไว้ล่วงหน้า
ชื่อใดเหมาะกับไฟล์ของคุณ คุณสามารถ
ส่ง null ไปยัง getExternalFilesDir() แทนได้ ซึ่งจะแสดงผลไดเรกทอรีเฉพาะแอปรูทภายในพื้นที่เก็บข้อมูลภายนอก
ตรวจสอบพื้นที่ว่าง
ผู้ใช้หลายคนมีพื้นที่เก็บข้อมูลในอุปกรณ์เหลือน้อย ดังนั้นแอปของคุณควรใช้พื้นที่อย่างรอบคอบ
หากทราบล่วงหน้าว่าคุณจะจัดเก็บข้อมูลไว้เท่าใด คุณสามารถดูพื้นที่ที่อุปกรณ์จัดสรรให้แอปได้โดยการเรียกใช้
getAllocatableBytes()
ค่าที่แสดงผลของ getAllocatableBytes() อาจมากกว่าพื้นที่ว่างปัจจุบันในอุปกรณ์ เนื่องจากระบบได้ระบุไฟล์ที่สามารถนำออกจากไดเรกทอรีแคชของแอปอื่นๆ ได้
หากมีพื้นที่เพียงพอที่จะบันทึกข้อมูลของแอป ให้เรียกใช้
allocateBytes()
ไม่เช่นนั้น แอปของคุณสามารถขอให้ผู้ใช้นำไฟล์บางไฟล์ออกจากอุปกรณ์หรือนำไฟล์แคชทั้งหมดออกจากอุปกรณ์
ข้อมูลโค้ดต่อไปนี้แสดงตัวอย่างวิธีที่แอปของคุณจะตรวจสอบพื้นที่ว่างในอุปกรณ์
Kotlin
// App needs 10 MB within internal storage. const val NUM_BYTES_NEEDED_FOR_MY_APP = 1024 * 1024 * 10L; val storageManager = applicationContext.getSystemService<StorageManager>()!! val appSpecificInternalDirUuid: UUID = storageManager.getUuidForPath(filesDir) val availableBytes: Long = storageManager.getAllocatableBytes(appSpecificInternalDirUuid) if (availableBytes >= NUM_BYTES_NEEDED_FOR_MY_APP) { storageManager.allocateBytes( appSpecificInternalDirUuid, NUM_BYTES_NEEDED_FOR_MY_APP) } else { val storageIntent = Intent().apply { // To request that the user remove all app cache files instead, set // "action" to ACTION_CLEAR_APP_CACHE. action = ACTION_MANAGE_STORAGE } }
Java
// App needs 10 MB within internal storage. private static final long NUM_BYTES_NEEDED_FOR_MY_APP = 1024 * 1024 * 10L; StorageManager storageManager = getApplicationContext().getSystemService(StorageManager.class); UUID appSpecificInternalDirUuid = storageManager.getUuidForPath(getFilesDir()); long availableBytes = storageManager.getAllocatableBytes(appSpecificInternalDirUuid); if (availableBytes >= NUM_BYTES_NEEDED_FOR_MY_APP) { storageManager.allocateBytes( appSpecificInternalDirUuid, NUM_BYTES_NEEDED_FOR_MY_APP); } else { // To request that the user remove all app cache files instead, set // "action" to ACTION_CLEAR_APP_CACHE. Intent storageIntent = new Intent(); storageIntent.setAction(ACTION_MANAGE_STORAGE); }
สร้างกิจกรรมการจัดการพื้นที่เก็บข้อมูล
แอปของคุณสามารถประกาศและสร้างกิจกรรมที่กำหนดเองซึ่งเมื่อเปิดตัวแล้วจะช่วยให้ผู้ใช้จัดการข้อมูลที่แอปของคุณจัดเก็บไว้ในอุปกรณ์ของผู้ใช้ได้ คุณ
ประกาศกิจกรรม "จัดการพื้นที่" ที่กำหนดเองนี้โดยใช้
android:manageSpaceActivity
แอตทริบิวต์ในไฟล์ Manifest แอปโปรแกรมจัดการไฟล์สามารถเรียกใช้
กิจกรรมนี้
ได้แม้ว่าแอปของคุณจะไม่ได้ส่งออกกิจกรรมก็ตาม นั่นคือเมื่อกิจกรรมของคุณตั้งค่า
android:exported เป็น
false
ขอให้ผู้ใช้นำไฟล์บางไฟล์ออกจากอุปกรณ์
หากต้องการขอให้ผู้ใช้เลือกไฟล์ในอุปกรณ์ที่จะนำออก ให้เรียกใช้ Intent
ที่มีการดำเนินการ
ACTION_MANAGE_STORAGE
Intent นี้จะแสดงข้อความแจ้งแก่ผู้ใช้ ข้อความแจ้งนี้สามารถแสดงพื้นที่ว่างในอุปกรณ์ได้หากต้องการ หากต้องการแสดงข้อมูลที่เป็นมิตรต่อผู้ใช้นี้ ให้ใช้ผลลัพธ์ของการคำนวณต่อไปนี้
StorageStatsManager.getFreeBytes() / StorageStatsManager.getTotalBytes()
ขอให้ผู้ใช้นำไฟล์แคชทั้งหมดออก
หรือคุณจะขอให้ผู้ใช้ล้างไฟล์แคชจากแอปทั้งหมด ในอุปกรณ์ก็ได้ หากต้องการทำเช่นนั้น ให้เรียกใช้ Intent ที่มีการดำเนินการผ่าน Intent
ACTION_CLEAR_APP_CACHE
แหล่งข้อมูลเพิ่มเติม
โปรดดูแหล่งข้อมูลต่อไปนี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการบันทึกไฟล์ลงในพื้นที่เก็บข้อมูลของอุปกรณ์