从应用程序 class 退出 Android 应用程序(不是 activity)

Exit Android application from application class (Not activity)

有没有办法从应用程序 class 本身退出 android 应用程序。 这甚至在任何 activity 被初始化之前。

场景是用户在不受支持的设备中加载构建,这会导致当我尝试加载不适用于该设备的第三方库时崩溃。

第三方 SDK 的加载发生在应用程序 class 中。

在这种情况下使用 System.exit(0) 是否安全,因为我无法调用 finishAffinity()?

我相信这会达到你的目的。

 android.os.Process.killProcess(android.os.Process.myPid());

快速回答:您可以使用任何功能退出此 post 中提到的应用程序。您可以在应用程序 class 的 onCreate() 函数中调用退出函数。但是,所有这些都会导致不支持的设备出现闪烁。这不是退出应用程序的优雅方式。

首选答案:因此,作为替代方案,显示一个 activity 来解释应用无法继续加载的原因。如果可能,请将您的库加载到另一个 class。使用它的 return 值来确定加载是否成功。如果成功,继续加载,否则显示错误消息,然后退出应用程序。

尝试先杀死所有进程,然后关闭java vm。

public void killAppProcess() {
    ActivityManager mActivityManager = (ActivityManager)CurrentActivity.this.getSystemService(Context.ACTIVITY_SERVICE);
    List<ActivityManager.RunningAppProcessInfo  mList = mActivityManager.getRunningAppProcesses();
    for (ActivityManager.RunningAppProcessInfo runningAppProcessInfo : mList)
    {
        if (runningAppProcessInfo.pid != android.os.Process.myPid())
        {
            android.os.Process.killProcess(runningAppProcessInfo.pid);
        }
    }
    android.os.Process.killProcess(android.os.Process.myPid());
    System.exit(0);
}