发布时间:2025-12-09 11:52:59 浏览次数:1
Android退出app
我是用在用户协议未同意时退出app的
关闭所有的Activity
具体代码如下:
ActivityCollector
/*关闭所有的Activity */public class ActivityCollector { public static LinkedList<Activity> activities = new LinkedList<Activity>(); /* 添加Activity */ public static void addActivity(Activity activity){ activities.add(activity); } /* 删除Activity */ public static void removeActivity(Activity activity){ activities.remove(activity); } //关闭所有的Activity public static void finishAll(){ for (Activity activity:activities){ if (!activity.isFinishing()){ activity.finish(); } } }}BaseActivity
public class BaseActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityCollector.addActivity(this); } @Override protected void onDestroy() { super.onDestroy(); ActivityCollector.removeActivity(this); }}完全退出app
上面那个只是关闭所有的Activity,但生成的线程之类的没有退出,所以调用了ActivityCollector.finishAll())之后再加上:
//关闭所有的Activity;ActivityCollector.finishAll(); //完全退出App ActivityManager activityMgr = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); activityMgr.killBackgroundProcesses(context.getPackageName()); System.exit(0);