我想要做的是,当有任何未处理的异常时,关闭所有打开的活动
我有一个BaseActivity
,它是我的应用程序中的所有活动的基础,以及从该类派生的每个活动
我在setDefaultUncaughtExceptionHandler
的{{1}}中致电onCreate
。
我有BaseActivity
如下:
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);
}
}
}
在任何unhandeled异常中,我的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;
}
}
}
函数被调用,这是预期的,然后我开始显示错误详细信息的新活动和在uncaughtException
活动中退出的按钮。
但问题是,在选择退出应用程序按钮后,并非应用程序中的所有活动都关闭,仍然很少有活动打开,如何关闭所有打开的活动?
答案 0 :(得分:0)
beforedrop
在您的应用程序类中编写此方法..