5

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

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

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

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

4

3 回答 3

1

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

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

于 2021-12-28T04:52:18.023 回答
0

我相信这将达到您的目的。

 android.os.Process.killProcess(android.os.Process.myPid());
于 2021-12-22T05:15:41.747 回答
0

尝试先杀死所有进程,然后关闭 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);
}
于 2021-12-28T06:32:02.277 回答