Ada API baru yang diperkenalkan di API 19 (KitKat):
ActivityManager.clearApplicationUserData () .
Saya sangat merekomendasikan menggunakannya di aplikasi baru:
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.
}
Jika Anda tidak ingin cara hacky Anda juga dapat menyembunyikan tombol di UI, sehingga fungsinya tidak tersedia di ponsel lama.
Pengetahuan tentang metode ini wajib bagi siapa saja yang menggunakan android:manageSpaceActivity
.
Setiap kali saya menggunakan ini, saya melakukannya dari manageSpaceActivity
yang memiliki android:process=":manager"
. Di sana, saya secara manual mematikan proses lain dari aplikasi saya. Ini memungkinkan saya untuk membiarkan UI tetap berjalan dan membiarkan pengguna memutuskan ke mana harus pergi selanjutnya.
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);
}
}
}
Saya hanya meletakkan tutorial dari link ihrupin yang diposting di sini di posting ini.
Jadi jika Anda ingin tombol untuk melakukan ini, Anda perlu memanggil MyApplication.getInstance (). clearApplicationData () dari dalam onClickListener
Pembaruan:
SharedPreferences
Instance Anda mungkin menyimpan data Anda dan membuat ulang file preferensi setelah Anda menghapusnya. Jadi, Anda ingin mendapatkanSharedPreferences
objek Anda danMemperbarui:
Anda perlu menambahkan
android:name="your.package.MyApplication"
keapplication tag
dalam AndroidManifest.xml jika Anda belum melakukannya. Lain,MyApplication.getInstance()
kembalinull
, menghasilkan NullPointerException .sumber
gabungkan kode dari 2 jawaban:
Berikut adalah gabungan jawaban berbasis sumber
sumber
Cara termudah untuk melakukannya adalah
Ini akan menghapus data dan menghapus aplikasi Anda dari memori. Ini setara dengan opsi hapus data di bawah Pengaturan -> Manajer Aplikasi -> Aplikasi Anda -> Hapus data
sumber
pm
) yang mungkin tidak ada berisiko. Mereka bukan bagian dari "kontrak" Android SDK, jadi apakah mereka ada pada perangkat tertentu atau apakah mereka berperilaku sama seperti yang mereka lakukan pada perangkat lain terserah produsen dan pengembang ROM khusus.Yang saya gunakan di mana-mana:
sumber
Jika Anda menginginkan peretasan yang tidak terlalu bertele-tele:
sumber