Что я хочу сделать, закройте все открытые действия, когда есть необработанное исключение.
У меня есть BaseActivity
, который является базовым для всех видов деятельности в моем приложении и всех видов деятельности, полученных из этого класса.
Я позвонил setDefaultUncaughtExceptionHandler
в onCreate
из BaseActivity
.Закрытие всех открытых действий, когда `uncaughtException` называется
У меня есть BaseActivity
, как показано ниже:
public abstract class BaseActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
// Exceptions that are not handled are received in GlobalExceptionHandler class
Thread.setDefaultUncaughtExceptionHandler(new MyExceptionHandler());
}
public class MyExceptionHandler implements UncaughtExceptionHandler
{
@Override
public void uncaughtException(Thread thread, Throwable e)
{
String report = "";
// Code to generate report string
......
// Code to generate report string
// Start error screen
Intent intent = new Intent(mContext, ErrorScreen.class);
intent.putExtra("error", report);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
// Exit
System.exit(0);
}
}
}
Вот мой ErrorScreen активность:
public class ErrorScreen extends Activity implements OnClickListener
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.error_screen_layout);
// Display error report from intent
}
@Override
public void onClick(View view)
{
switch(view.getId())
{
case R.id.btn_exit_app:
{
// All this is not working
// and few activities are still there
finish();
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
}
break;
}
}
}
На любом unhandeled исключением, моя uncaughtException
функция вызывался, который, как ожидалось, то я начинаю новую активность для отображения информации об ошибке и кнопку для выхода в ErrroScreen
.
Но проблема в том, что после того, как вы выбрали кнопку выхода из приложения, не все действия в приложении закрываются, все еще есть несколько открытых действий, как закрыть все открытые действия?
Но я не хочу, чтобы автоматически перезагрузить приложение через 15000 мс, и я не хочу, чтобы отобразить только Тост. я просто хочу закрыть все открытые действия. это оно. – User7723337
означает, что вы хотите закрыть приложение? – Android
да, я просто хочу отображать информацию об ошибках, и когда пользователь выбирает кнопку выхода из приложения, я хочу полностью закрыть приложение. – User7723337