Android 错误时关闭应用程序

Android 错误时关闭应用程序,android,Android,我目前正在为Android平台编写一个应用程序,需要安装SD卡(或外部存储)。我知道这可能不是要求这样的东西的最佳方式,但应用程序将处理大量数据,我甚至不想考虑将这些数据存储在设备的存储器中 无论如何,为了确保应用程序在没有外部存储的情况下不会运行,我在活动的onCreate方法中进行了快速检查。如果卡未装入,我想显示一条错误消息,然后退出应用程序 我目前的做法如下: public void onCreate ( Bundle savedInstanceState ) { super.o

我目前正在为Android平台编写一个应用程序,需要安装SD卡(或外部存储)。我知道这可能不是要求这样的东西的最佳方式,但应用程序将处理大量数据,我甚至不想考虑将这些数据存储在设备的存储器中

无论如何,为了确保应用程序在没有外部存储的情况下不会运行,我在活动的
onCreate
方法中进行了快速检查。如果卡未装入,我想显示一条错误消息,然后退出应用程序

我目前的做法如下:

public void onCreate ( Bundle savedInstanceState )
{
    super.onCreate( savedInstanceState );
    setContentView( R.layout.main );

    try
    {
        // initialize data storage
        // will raise an exception if it fails, or the SD card is not mounted
        // ...
    }
    catch ( Exception e )
    {
        AlertDialog.Builder builder = new AlertDialog.Builder( this );
        builder
            .setMessage( "There was an error: " + e.getMessage() )
            .setCancelable( false )
            .setNeutralButton( "Ok.", new DialogInterface.OnClickListener()
            {
                public void onClick ( DialogInterface dialog, int which )
                {
                    MyApplication.this.finish();
                }
            } );
            AlertDialog error = builder.create();
            error.show();
            return;
    }

    // continue ...
}
当我运行应用程序并引发异常时(我手动引发以检查是否一切正常),错误消息将正确显示。但是,当我按下按钮时,应用程序关闭,我得到一个Android错误,应用程序意外关闭(我应该强制退出)

在关闭应用程序之前,我读过一些主题,我知道可能不应该这样。但是我应该如何阻止应用程序继续运行呢?发生错误时,如何正确关闭应用程序

但我应该如何预防这种情况呢 应用程序是否继续运行

完成你当前的活动应该很好,就像你今天所做的那样

如何关闭应用程序 发生错误时是否正确

你没有。关闭组件(活动、服务等)。如果此活动需要SD卡,但SD卡不可用,请完成此活动


一般来说,您对Android“应用程序”的想法越少,而您的APK有一个松散耦合的组件篮的想法越多越好。

您的代码似乎按照您建议的方式工作。我没有看到任何关于应用程序意外关闭的警告。您的问题可能在其他地方。使用Eclipse中的adb logcat、DDMS或DDMS透视图查看与强制关闭错误相关的Java堆栈跟踪。这将帮助您诊断您的问题。我同意tkryger的观点,你的错误似乎与你在这里列出的代码没有直接关系!我在
onDestroy
处理程序中有一些旧代码,它关闭了未打开的数据库。这可能引发了一个例外。谢谢你的评论!但是,我仍然不太确定这是否是正确的方法,所以如果有更好的方法,请告诉我:)