มี API ใหม่แนะนำใน API 19 เป็น (KitKat):
ActivityManager.clearApplicationUserData ()
ฉันขอแนะนำให้ใช้ในแอปพลิเคชันใหม่:
import android.os.Build.*;
if (VERSION_CODES.KITKAT <= VERSION.SDK_INT) {
((ActivityManager)context.getSystemService(ACTIVITY_SERVICE))
.clearApplicationUserData(); // note: it has a return value!
} else {
// use old hacky way, which can be removed
// once minSdkVersion goes above 19 in a few years.
}
หากคุณไม่ต้องการวิธีแฮ็กคุณสามารถซ่อนปุ่มบน UI ได้เพื่อให้ฟังก์ชันนั้นใช้ไม่ได้กับโทรศัพท์รุ่นเก่า
android:manageSpaceActivityความรู้เกี่ยวกับวิธีการนี้มีผลบังคับใช้สำหรับทุกคนที่ใช้
เมื่อใดก็ตามที่ผมใช้นี้ผมทำเช่นนั้นจากที่มีmanageSpaceActivity android:process=":manager"ที่นั่นฉันฆ่ากระบวนการอื่น ๆของแอปด้วยตนเอง สิ่งนี้ทำให้ฉันปล่อยให้ UI ทำงานต่อไปและให้ผู้ใช้ตัดสินใจว่าจะไปที่ไหนต่อ
private static void killProcessesAround(Activity activity) throws NameNotFoundException {
ActivityManager am = (ActivityManager)activity.getSystemService(Context.ACTIVITY_SERVICE);
String myProcessPrefix = activity.getApplicationInfo().processName;
String myProcessName = activity.getPackageManager().getActivityInfo(activity.getComponentName(), 0).processName;
for (ActivityManager.RunningAppProcessInfo proc : am.getRunningAppProcesses()) {
if (proc.processName.startsWith(myProcessPrefix) && !proc.processName.equals(myProcessName)) {
android.os.Process.killProcess(proc.pid);
}
}
}