এপিআই 19 (কিটকাট) এ একটি নতুন এপিআই চালু হয়েছে: অ্যাক্টিভিটি ম্যানেজার.ক্লিয়ার অ্যাপ্লিকেশন ইউজারডাটা
() ।
আমি এটি নতুন অ্যাপ্লিকেশনগুলিতে ব্যবহার করার জন্য অত্যন্ত পরামর্শ দিচ্ছি:
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.
}
আপনি যদি হ্যাকি উপায়টি না চান তবে আপনি ইউআইতে বোতামটিও আড়াল করতে পারেন, যাতে কার্যকারিতা কেবল পুরানো ফোনে পাওয়া যায় না।
এই পদ্ধতির জ্ঞান যে কেউ ব্যবহার করছে তাদের জন্য বাধ্যতামূলক android:manageSpaceActivity।
আমি যখনই এটি ব্যবহার করি, তখন manageSpaceActivityযা আছে তা থেকে এটি করি android:process=":manager"। সেখানে আমি আমার অ্যাপ্লিকেশনটির অন্য কোনও প্রক্রিয়াটি ম্যানুয়ালি হত্যা করি। এটি আমাকে একটি ইউআই চালিয়ে যেতে দেয় এবং ব্যবহারকারীকে কোথায় যেতে হবে তা স্থির করতে দেয়।
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);
}
}
}