Có một API mới được giới thiệu trong API 19 (KitKat):
ActivityManager.clearApplicationUserData () .
Tôi thực sự khuyên bạn nên sử dụng nó trong các ứng dụng mới:
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.
}
Nếu bạn không muốn theo cách hacky, bạn cũng có thể ẩn nút trên giao diện người dùng để chức năng đó không có sẵn trên điện thoại cũ.
Kiến thức về phương pháp này là bắt buộc đối với bất kỳ ai sử dụng android:manageSpaceActivity.
Bất cứ khi nào tôi sử dụng cái này, tôi làm như vậy từ manageSpaceActivitycái có android:process=":manager". Ở đó, tôi tự hủy bất kỳ quy trình nào khác trong ứng dụng của mình. Điều này cho phép tôi để giao diện người dùng tiếp tục chạy và cho phép người dùng quyết định nơi tiếp theo.
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);
}
}
}