Android 在UncaughtException中创建了三次意图选择器

Android 在UncaughtException中创建了三次意图选择器,android,android-intent,android-activity,Android,Android Intent,Android Activity,我正在创建自己的未捕获异常行为。我想发送一封包含报告的电子邮件,因此在处理UncaughtException时,我想创建一个选择器,让用户选择他们的电子邮件客户端 当我这样做时,在调用Intent之后,我必须终止进程。但是终止进程会使意图选择器被创建三次而不是一次。我应该怎么做 public class BaseActivity extends AppCompatActivity implements Thread.UncaughtExceptionHandler { @Override p

我正在创建自己的未捕获异常行为。我想发送一封包含报告的电子邮件,因此在处理UncaughtException时,我想创建一个选择器,让用户选择他们的电子邮件客户端

当我这样做时,在调用Intent之后,我必须终止进程。但是终止进程会使意图选择器被创建三次而不是一次。我应该怎么做

public class BaseActivity extends AppCompatActivity implements Thread.UncaughtExceptionHandler {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Thread.setDefaultUncaughtExceptionHandler(this);
}

@Override
public void uncaughtException(Thread thread, Throwable ex) {
    MyLog.w("[BaseActivity]::[uncaughtException]");
    ex.printStackTrace();

    StringWriter errors = new StringWriter();
    ex.printStackTrace(new PrintWriter(errors));
    final String message = errors.toString();

    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("message/rfc822");
    intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
    intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"my@email.address"});
    intent.putExtra(Intent.EXTRA_SUBJECT, "ERROR: Controller");
    intent.putExtra(Intent.EXTRA_TEXT, message);

    try {
        MyLog.i("[starting chooser]::[%s]",System.currentTimeMillis());
        startActivity(Intent.createChooser(intent, getString(R.string.msg_send_action_msg)));
    } catch (ActivityNotFoundException ex1) {
        Toast.makeText(getApplicationContext(), R.string.msg_err_no_email_client, Toast.LENGTH_LONG).show();
    }

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

}

}

在启动后调用finish触觉

它可能无法修复问题,但您可能应该在启动后调用finishstartActivity@GreyBeardedGeek有趣的是,你可能已经解决了我的问题,哈哈:我在startActivity之后添加了finish,选择器只创建了一次。会做更多的测试,然后回来!是的,真的很有帮助!如果你回答这个问题,我会把它标为接受。