Android 如何保持强制关闭上的活动?

Android 如何保持强制关闭上的活动?,android,android-activity,Android,Android Activity,我有一段非常容易出错的代码,所以我用try{}catch语句将其包装起来。我不想回到以前的活动,我只想让它停留在当前的活动上,这样用户就可以编辑他们的任何错误 我如何实现这一点 try{ orgi.insertOrThrow(tableName, null, values); Toast.makeText(this, "You have successfully created a new profile!", 2).show(); got

我有一段非常容易出错的代码,所以我用try{}catch语句将其包装起来。我不想回到以前的活动,我只想让它停留在当前的活动上,这样用户就可以编辑他们的任何错误

我如何实现这一点

    try{
        orgi.insertOrThrow(tableName, null, values);
        Toast.makeText(this, "You have successfully created a new profile!", 2).show();
        gotoProfileList();
        Log.e(getClass().getSimpleName(),"Successfully added to database");
    }catch(SQLiteException se){
        Log.e(getClass().getSimpleName(), "Database connection failed!" + se);

        //Stay in this activity...
    }finally{
        if (orgi != null){
            orgi.close();
        }
    }
算了吧,我可以通过显示一个alertDialog来解决我自己的问题,该对话框告诉用户错误。无论如何,谢谢。:)


强制关闭是由未捕获的异常引起的。在您的示例中只捕获SQLiteException。您需要捕获其他异常并优雅地处理它们。 现在,FCs的一个典型原因是使用空对象和产生的NullPointerException。你不该抓到这些。在许多情况下,您的应用程序将非常混乱,无法正确继续。您可以在此处阅读更多内容:

在任何情况下,您都应该在emulator或连接的手机上运行应用程序,导致崩溃,然后使用DDMS或“adb logcat”登录到设备日志。查看回溯,找到错误,修复它。如果你的应用在市场上,市场将列出你的用户设备为你发送的回溯。如果你还没有使用Android Market,你可以让你的应用程序通过一个PHP脚本远程记录stacktraces,该脚本运行在一个web服务器上

顺便说一句,最好将异常作为第三个参数传递给Log方法,而不是将第二个参数连接到异常(从而隐式调用toString()。在您的示例中,这将是:

Log.e(getClass().getSimpleName(), "Database connection failed!", se);

代码对我来说看起来很好,这个代码有什么行为?有例外吗?我不理解这个问题,强制关闭大多数时候都有一个原因,例如如果您访问空对象。所以,即使发生类似的事情,你也希望保持这种活动?如果是这样的话,我听起来就不对了:)。如果不是那么清楚,我很抱歉。应用程序似乎因为orgi.close()而关闭;我不知道finally()是在捕获错误后立即调用的。我必须将其删除,以便应用程序不会返回主屏幕。:)不管怎样,谢谢。不客气。如果问题解决了,别忘了接受答案!
Log.e(getClass().getSimpleName(), "Database connection failed!", se);