Java 在特定活动中遇到错误后终止整个应用程序

Java 在特定活动中遇到错误后终止整个应用程序,java,android,Java,Android,我有一个包含两个活动的应用程序,正在发生的是: 当这些活动中的一个发生错误,并且我面临“不幸的是X应用程序停止工作”错误时,只有一个活动停止工作,它会自动跳转到另一个活动,并在后台使用错误继续运行应用程序 我要找的是: 是否有任何方法向清单部分添加任何类型的代码,以在特定活动中遇到错误时终止整个应用程序,或者甚至向面临错误的高风险活动添加其他代码 我的舱单 <manifest xmlns:android="http://schemas.android.com/apk/res/android

我有一个包含两个活动的应用程序,正在发生的是:

当这些活动中的一个发生错误,并且我面临“不幸的是X应用程序停止工作”错误时,只有一个活动停止工作,它会自动跳转到另一个活动,并在后台使用错误继续运行应用程序

我要找的是:

是否有任何方法向清单部分添加任何类型的代码,以在特定活动中遇到错误时终止整个应用程序,或者甚至向面临错误的高风险活动添加其他代码

我的舱单

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.dpDemo.dpDemo">

<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.VIBRATE" />

<application
    android:allowBackup="true"
    android:excludeFromRecents="true"
    android:icon="@drawable/titl"
    android:label="FINDER III"
    android:supportsRtl="false"
    android:theme="@style/Theme.AppCompat.NoActionBar">
    <activity
        android:name=".FirstLoad"
        android:configChanges="orientation"
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".welcome" />
    <activity android:name=".BluetoothConnectionActivity" />
    <activity android:name=".DeviceList" />
    <activity android:name=".AutoAndManual" />
    <activity android:name=".MetalList" />
    <activity android:name=".FreQuencyManual" />
    <activity android:name=".CommunicationAuto" />
    <activity android:name=".CommunicationAuto2" />
    <activity android:name=".CommunicationAuto3" />
    <activity android:name=".CommunicationAuto4" />
    <activity android:name=".LoadingNewOne" />
    <activity android:name=".FinalAutoResult" />
    <activity android:name=".Security" />
    <activity android:name=".LoadingNewTwo" />
    <activity android:name=".LoadingNewThree" />
    <activity android:name=".LoadingNewFour" />
    <activity android:name=".AutoSelection" />
    <activity android:name=".powerLowResult" />
    <activity android:name=".powerMediumResult" />
    <activity android:name=".powerHighResult" />
    <activity android:name=".ClassLow" />
    <activity android:name=".ClassMedium" />
    <activity android:name=".ClassHigh" />
    <activity android:name=".ErrorPowerFinal" />
    <activity
        android:name=".ExitActivity"
        android:autoRemoveFromRecents="true"
        android:theme="@android:style/Theme.NoDisplay" />
    <activity android:name=".Filters" />
    <activity android:name=".ft1" />
    <activity android:name=".filterFinalResultWorking" />
    <activity android:name=".PowerDirectionX"></activity>
</application>

清单不提供任何实用程序来执行此操作。 您必须做的是将android代码的所有相关函数包装在try-and-catch块中。然后,您可以捕获要关闭应用程序的任何异常,并在“捕获”部分使用以下代码:

try{
 // code
 }catch(Exceptions e){
 finishAffinity();
 System.exit(0);
 }
FinishAfinity()是关闭应用程序的一种安全方法,尽管它可能会等待一段时间。
System.exit(0)立即关闭应用程序,尽管它可能会有突然关闭应用程序的一些副作用

尝试下面的代码可能会对您有所帮助:

public class MyApplication extends Application
{
  public void onCreate ()
  {
    // Setup handler for uncaught exceptions.
    Thread.setDefaultUncaughtExceptionHandler (new Thread.UncaughtExceptionHandler()
    {
      @Override
      public void uncaughtException (Thread thread, Throwable e)
      {
        handleUncaughtException (thread, e);
      }
    });
  }

  public void handleUncaughtException (Thread thread, Throwable e)
  {
    //Write your code here to manage
    System.exit(1); // kill off the crashed app
  }
}

捕获该错误并调用
System.exit(-1)
public class MyApplication extends Application
{
  public void onCreate ()
  {
    // Setup handler for uncaught exceptions.
    Thread.setDefaultUncaughtExceptionHandler (new Thread.UncaughtExceptionHandler()
    {
      @Override
      public void uncaughtException (Thread thread, Throwable e)
      {
        handleUncaughtException (thread, e);
      }
    });
  }

  public void handleUncaughtException (Thread thread, Throwable e)
  {
    //Write your code here to manage
    System.exit(1); // kill off the crashed app
  }
}