从应用程序类中退出Android应用程序(非活动)



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

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

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

在这种情况下使用System.exit(0(安全吗,因为我不能调用finishAffinity((?

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

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

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

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

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

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);
}

最新更新