【发布时间】:2022-01-20 14:48:17
【问题描述】:
有没有办法从 Application 类本身退出 android 应用程序。 这甚至在任何活动被初始化之前。
场景是用户在不受支持的设备中加载构建,当我尝试加载不适合该设备的第三方库时会导致崩溃。
第三方 SDK 的这种加载发生在应用程序类中。
在这种情况下使用 System.exit(0) 是否安全,因为我无法调用 finishAffinity()?
【问题讨论】:
-
System.exit() 如果堆栈上有多个活动,则不会终止您的应用程序。
-
正如我在问题中提到的,这是在创建任何活动之前在应用程序 onCreate() 中完成的
-
System.exit() 是终止 android 应用程序的坏方法,老实说我不会使用它。
-
我推荐使用finishAndRemoveTask();而不是 System.exit()
-
在初始化活动之前是否需要这样做?问这个是因为你可以在初始化失败的情况下立即完成活动。除非活动本身(在 onCreate 之前)需要这样做,否则只需在应用程序类上检测到它,然后在它失败时完成活动(并检查您的 onCreate -> onStart -> onResume -> onPause -> onStop -> onDestroy 循环是否有空指针.) 调用 System.exit() 或任何等效的方法将导致不可预知的行为。
标签: android system.exit