diff --git a/app/src/main/java/net/kdt/pojavlaunch/FatalErrorActivity.java b/app/src/main/java/net/kdt/pojavlaunch/FatalErrorActivity.java index 5712c2730..907b1fc0b 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/FatalErrorActivity.java +++ b/app/src/main/java/net/kdt/pojavlaunch/FatalErrorActivity.java @@ -1,10 +1,19 @@ package net.kdt.pojavlaunch; -import android.support.v7.app.*; +import android.content.*; import android.os.*; +import android.support.v7.app.*; public class FatalErrorActivity extends AppCompatActivity { + public static void showError(Context ctx, Throwable th) { + Intent ferrorIntent = new Intent(ctx, FatalErrorActivity.class); + ferrorIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); + ferrorIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + ferrorIntent.putExtra("throwable", th); + ctx.startActivity(ferrorIntent); + } + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); diff --git a/app/src/main/java/net/kdt/pojavlaunch/PojavApplication.java b/app/src/main/java/net/kdt/pojavlaunch/PojavApplication.java index 54484ae82..9cda1f259 100644 --- a/app/src/main/java/net/kdt/pojavlaunch/PojavApplication.java +++ b/app/src/main/java/net/kdt/pojavlaunch/PojavApplication.java @@ -14,6 +14,14 @@ public class PojavApplication extends Application { @Override public void onCreate() { + Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler(){ + @Override + public void uncaughtException(Thread thread, Throwable th) { + FatalErrorActivity.showError(PojavApplication.this, th); + android.os.Process.killProcess(android.os.Process.myPid()); + } + }); + try { super.onCreate(); Tools.APP_NAME = getResources().getString(R.string.app_short_name);