API 19'da (KitKat) tanıtılan yeni bir API var:
ActivityManager.clearApplicationUserData () .
Yeni uygulamalarda kullanmanızı şiddetle tavsiye ederim:
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.
}
Keskin bir yol istemiyorsanız, kullanıcı arayüzündeki düğmeyi de gizleyebilirsiniz, böylece işlevsellik eski telefonlarda kullanılamaz.
Bu yöntemin bilgisi, kullanan herkes için zorunludur android:manageSpaceActivity.
Bunu her kullandığınızda, bir gelen bunu manageSpaceActivitysahip olduğu android:process=":manager". Orada, uygulamamın diğer işlemlerini manuel olarak öldürüyorum . Bu, bir kullanıcı arayüzünün çalışmaya devam etmesine ve kullanıcının bir sonraki nereye gideceğine karar vermesine izin vermeme izin veriyor.
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);
}
}
}