1

私はAndroidアプリに取り組んでおり、アプリが閉じられたときに、特定の配列の内容をファイルに保存して、アプリが再び開いたときにその内容を読み取ることができるようにしたい配列。

私は間違っているかもしれませんが、私の理解では、これを行うべきメソッドは onStop() メソッドです。

その結果、ホーム ボタンを押すと、アプリが閉じて、「残念ながら、アプリがクラッシュしました」というメッセージが表示されます。デバッガーを実行してみましたが、コードは .close() コマンドまでは正しく実行されているようですが、その後何かが起こっているようです。以下は私のコードです。

 @Override
public void onStop()
{
    try{

       FileOutputStream fOut = openFileOutput("savedVinyls", Context.MODE_PRIVATE);
       String vinylString = "Test";

       fOut.write(vinylString.getBytes());
       fOut.close();

    }
    catch(IOException OE){
        OE.getStackTrace();

    }
}
4

2 に答える 2

5

これは、onStop スーパー クラスの実装を呼び出していないためです。Google API ライブラリからの引用:

派生クラスは、このメソッドのスーパー クラスの実装を呼び出す必要があります。そうでない場合は、例外がスローされます。

したがって、Activity の onStop メソッドをオーバーライドする場合は、カスタム メソッドの開始時に super.onStop() を呼び出す必要があります。試す:

 @Override
public void onStop()
{
    super.onStop();
    try{

       FileOutputStream fOut = openFileOutput("savedVinyls", Context.MODE_PRIVATE);
       String vinylString = "Test";

       fOut.write(vinylString.getBytes());
       fOut.close();

    }
    catch(IOException OE){
        OE.getStackTrace();

    }
}
于 2013-08-18T02:18:31.460 に答える