Androidの2行のコードを使って本当にあなたのAppを殺します。


Androidで殺すプロセスは、System.exit(0)とProcess.killProcess(Process.myPid)の2つの方法があります。この2つの方法は暴力的で、Appプロセスは直接殺されます。しかし、Androidの安全メカニズムのため、上記の2つの方法を呼び出した後、Appは自動的に再起動されます。
私たちはどうやってアプリを殺したらいいですか?
二つのステップが必要だと思います。
一、開いているすべてのActivityをオフにします。
二、System.exit(0)またはProcess.killProcess(Process.myPid)を呼び出します。
まず二つのActivityを閉じる方法を紹介します。
1、この第一の方法は郭神が『第一行コード』で述べたものです。ここで引用します。
まず、私達は専門の集合類を使ってすべての活動を管理し、ActivityCollector類を新規に活動マネージャとして作成したいです。コードは下記の通りです。

private static List<Activity> activities = new ArrayList<>();
 
 public static void addActivity(Activity activity) {
  activities.add(activity);
 }
 public static void removeActivity(Activity activity) {
  activities.remove(activity);
 }
 public static void finishAll() {
  for (Activity activity : activities) {
   if (!activity.isFinishing()) {
    activity.finish();
   }
  }
  activities.clear();
 }
活動マネージャでは、Listに活動を一時保存し、Listに活動を追加するためのaddActivity()方法を提供し、Listから活動を除去するためのremoveActivity()方法を提供し、最後にListに記憶されている活動を全て廃棄するためのfinishAll()方法を提供します。
次に私たちはBaseActivityを作成します。その後に作成したすべてのActivityはこのBaseActivityに引き継がれます。
コードは以下の通りです。

public class BaseActivity extends AppCompatActivity {
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  Log.d("BaseActivity", getClass().getSimpleName());
  ActivityCollector.addActivity(this);
 }
 
 @Override
 protected void onDestroy() {
  super.onDestroy();
  ActivityCollector.removeActivity(this);
 }
 
}
BaseActivityのonCreate()メソッドでActivityCollectorのaddActivity()メソッドを呼び出し、現在作成されている活動を活動マネージャに追加することを示します。
その後BaseActivityにonDestroy()方法を書き直し、ActivityCollectorのremoveActivity()方法を呼び出し、すぐに廃棄する活動を活動マネージャから除去することを表明しました。
これからは、どこでプログラムを終了したいのかに関わらず、ActivityCollect or.finishAllを呼び出すだけでいいです。
2、この第二の方法はかなり簡単です。一行のコードだけが必要です。
Activityでは、
finish Affinity()
Fragmentであれば、
get Activity().finish Affinity()
OKです今はすべてのActivityをオフにしました。これからはSystem.exit(0)またはProcess.killProcess(Process.myPid()のいずれかを呼び出すだけで、いつでもどこでも実際にAppを殺すことができます。
以上のこのAndroid 2行のコードを利用して本当にあなたを殺したAppは小編集で皆さんに提供したすべての内容です。参考にしていただければと思います。どうぞよろしくお願いします。