建立工具類如下:
package com.example.hxd.gittest;
import android.app.Activity;
import java.util.ArrayList;
import java.util.List;
/**
* 統一退出程式的操作
*/
class ActivitySetting {
//建立集合存儲打開的Activity
static List<Activity> activityList = new ArrayList<>();
//添加打開的Activity到集合
static void addActivity(Activity activity) {
activityList.add(activity);
}
//移除集合内部的Activity
static void removeActivity(Activity activity) {
activityList.remove(activity);
}
//關閉所有的Activity
static void finishAllActivity() {
for (Activity activity : activityList) {
if (!activity.isFinishing()) {
activity.finish();
//殺死目前應用程序
android.os.Process.killProcess(android.os.Process.myPid());
}
}
}
}
在BaseActivity内部添加如下代碼:
package com.example.hxd.gittest;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_base);
//添加目前操作的Activity到集合内部
ActivitySetting.addActivity(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
//移除無用的Activity
ActivitySetting.removeActivity(this);
}
}
具體Activity内部代碼如下:
btnSecond.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//點選按鈕退出程式,殺死程序
ActivitySetting.finishAllActivity();
}
});