Saya yakin pertanyaan ini telah diajukan berkali-kali karena saya membaca sedikit. Klien saya ingin saya memasukkan tombol ke aplikasinya tempat pengguna dapat mengeklik dan keluar. Saya telah membaca ini dan menemukan panggilan finish()
akan melakukannya. Namun, finish hanya menutup aktivitas yang sedang berjalan, bukan? Saya memiliki banyak aktivitas sehingga dalam hal ini saya harus melewatkan setiap instance aktivitas dan menyelesaikannya atau membuat setiap aktivitas menjadi pola Singleton.
Saya juga harus tahu Activity.moveTaskToBack(true)
bisa membawa Anda ke layar beranda. Oke, ini bukan menutup tetapi melatarbelakangi proses. Jadi apakah ini efektif?
Metode mana yang harus saya gunakan untuk menutup aplikasi sepenuhnya? Salah satu dari yang dijelaskan di atas atau metode lain / penggunaan lain dari metode di atas?
sumber
Jawaban:
Sebenarnya setiap orang mencari untuk menutup aplikasi di acara onclick, di mana pun mungkin aktivitas ....
Jadi teman teman coba kode ini. Letakkan kode ini di acara onclick
Intent homeIntent = new Intent(Intent.ACTION_MAIN); homeIntent.addCategory( Intent.CATEGORY_HOME ); homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent);
sumber
Anda dapat memanggil System.exit (); untuk keluar dari semua aktivitas.
submit=(Button)findViewById(R.id.submit); submit.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); } });
sumber
Metode finishAffinity, dirilis di API 16, menutup semua aktivitas yang sedang berlangsung dan menutup aplikasi:
this.finishAffinity();
Sejak API 21, Anda dapat menggunakan:
Alternatif:
getActivity().finish(); System.exit(0);
int pid = android.os.Process.myPid(); android.os.Process.killProcess(pid);
Intent i = new Intent(context, LoginActivity.class); i.putExtra(EXTRA_EXIT, true); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); context.startActivity(i);
Sumber: Cara keluar dari aplikasi android secara terprogram
Semoga membantu! Semoga berhasil!
sumber
Jika Anda ingin keluar dari aplikasi Anda, gunakan kode ini di dalam acara penekanan tombol Anda:
public void onBackPressed() { moveTaskToBack(true); android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); }
sumber
@Override public void onBackPressed() { AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); alertDialogBuilder.setTitle("Exit Application?"); alertDialogBuilder .setMessage("Click yes to exit!") .setCancelable(false) .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { moveTaskToBack(true); android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1); } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.cancel(); } }); AlertDialog alertDialog = alertDialogBuilder.create(); alertDialog.show(); }
sumber
Itu terlalu mudah. Menggunakan
System.exit(0);
sumber
Ada dua kemungkinan situasi:
Anda dapat keluar dari aktivitas menggunakan kode berikut:
var intent = new Intent(Intent.ActionMain); intent.AddCategory(Intent.CategoryHome); intent.SetFlags(ActivityFlags.NewTask); startActivity(intent); finish();
Tapi ini tidak akan mematikan aktivitas yang mendasari dalam aplikasi yang sama. Ini hanya akan meminimalkan aplikasi.
Jika Anda ingin keluar dari aplikasi gunakan kode berikut untuk mengakhiri prosesnya:
untuk pengembangan mono gunakan saja
sumber
android.os.Process.killProcess(android.os.Process.myPid());
danprocess.KillProcess(Process.MyPid());
?Bagaimana tentang
this.finishAffinity()
Dari dokumen,
sumber
sumber
ini akan menghapus Tugas (tumpukan aktivitas) dan memulai Tugas baru
Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent); System.exit(1);
sumber
@Override public void onBackPressed() { Intent homeIntent = new Intent(Intent.ACTION_MAIN); homeIntent.addCategory( Intent.CATEGORY_HOME ); homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent); }
sumber
masukkan yang ini ke onClic Anda:
moveTaskToBack(true); finish()
sumber
movewTaskToBack
tidak menyelesaikan apa-apa, hanya menyembunyikan aplikasi, danfinish
seperti yang disebutkan oleh orang lain hanya menyelesaikan yang sekarangactivity
. Jadi itu menghentikan aktivitas saat ini dan menyembunyikan sisanya, jika ada. Pokoknya seharusnya tidak mendapatkan suara bawah hanya untuk ini ...Coba ini saat menelepon. Saya terkadang menggunakannya di onClick dari sebuah tombol.
Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
Alih-alih menutup aplikasi Anda, itu membuka dasbor sehingga sepertinya aplikasi Anda ditutup.
baca pertanyaan ini untuk lebih jelasnya android - kode aplikasi keluar
sumber
Gunakan this.finishAffinity (); pada tombol itu alih-alih finish (); Jika tidak berhasil, Anda juga bisa mencoba dengan menambahkan android: noHistory = "true" dalam manifes Anda lalu selesaikan aktivitas Anda dengan uisng finish (); atau finishAffinity ();
Semoga membantu .... :)
sumber
Mencapai di Xamarin.Android:
public override void OnBackPressed() { MoveTaskToBack(true); Process.KillProcess(Process.MyPid()); Environment.Exit(1); }
sumber
Panggil saja kedua fungsi ini
finish(); moveTaskToBack(true);
sumber
Intent homeIntent = new Intent(Intent.ACTION_MAIN); homeIntent.addCategory( Intent.CATEGORY_HOME ); homeIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(homeIntent); System.exit(1);
Gunakan Kode ini, itu sangat berguna, dan Anda dapat keluar dari semua aktivitas.
sumber
aktivitas hantu yang dipanggil dengan singletop dan finish () di onCreate seharusnya berhasil
sumber
Ini bekerja hanya dengan menggunakan
moveTaskToBack(true);
sumber
Alih-alih System.exit (1) Cukup gunakan System.exit (0)
sumber
Jika seseorang masih bertanya-tanya, untuk Xamarin.Android (dalam kasus saya juga Monogame berjalan di atasnya) perintah
FinishAndRemoveTask()
diActivity
melakukan pekerjaan dengan sangat baik!sumber
dalam fragmen
getActivity (). finishAndRemoveTask ();
dalam Aktivitas
finishAndRemoveTask ();
sumber
cukup gunakan kode di backpress Anda
Intent startMain = new Intent(Intent.ACTION_MAIN); startMain.addCategory(Intent.CATEGORY_HOME); startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(startMain);
sumber
Jika Anda menggunakan EventBus (atau pub / sub library lainnya) di aplikasi Anda untuk berkomunikasi di antara aktivitas, Anda dapat mengirimi mereka acara eksplisit:
final public class KillItWithFireEvent { public KillItWithFireEvent() {} public static void send() { EventBus.getDefault().post(new KillItWithFireEvent()); } }
Satu-satunya downside ini adalah Anda membutuhkan semua aktivitas untuk mendengarkan acara ini untuk memanggil mereka sendiri
finish()
. Untuk ini, Anda dapat dengan mudah membuat kelas aktivitas shim melalui pewarisan yang hanya mendengarkan kejadian ini dan membiarkan subkelas mengimplementasikan yang lainnya, lalu memastikan semua aktivitas Anda mewarisi dari lapisan tambahan ini. Pendengar pembunuh bahkan dapat menambahkan beberapa fungsi tambahan melalui penggantian, seperti menghindari kematian pada situasi tertentu.sumber
Jalankan saja dua baris di bawah ini saat Anda ingin keluar dari aplikasi
android.os.Process.killProcess(android.os.Process.myPid()); System.exit(1);
sumber
finish(); finishAffinity(); System.exit(0);
bekerja untuk saya
sumber
Panggil saja ini:
sumber
Tautkan metode ini ke tombol keluar / keluar Anda
public void quitGame(View view) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { finishAndRemoveTask(); } else { finish(); } }
sumber
Jika Anda menggunakan keduanya, selesai dan keluar, aplikasi Anda akan ditutup dengan sempurna
selesai();
System.exit (0);
sumber