2016-12-19 11 views
1

私はuserinfoエンティティのファイナライズ機能でデータベースに挿入するため、できるだけユーザー名とアバターURLを保存する必要があります。オブジェクトがgcによって収集されるときにファイナライズが呼び出されるので、そこで何かをするのは悪いと思うので、これは悪いことか何か問題があります。Android:エンティティがファイナライズを実行している間にデータベースに挿入

コード:

enter image description here

enter image description here

+0

コードのスクリーンショットを投稿しないでください。画像を検索することはできません。テストのためにコピーできず、アクセシビリティが妨げられます。 代わりに、関連するコードを[書式付きテキスト](http://stackoverflow.com/help/formatting)として含めます。 – Meyer

答えて

0

あなたが何かを挿入すると、それは特にあなたの場合には、ガベージコレクションを遅くするようはい一般的に言えば、ファイナライザを実装するための悪い習慣です遅い操作であるデータベースに書き込む。したがって、GCが世界を止めてしまい、このオブジェクトのインスタンスが多数収集されているとすれば、アプリケーションは長期間使用できなくなります。

もファイナライザは、次のように、スーパークラスのファイナライザが起こるものは何でも呼び出されることを保証するためにtry/finallyブロックに実施されるべきであることに注意してください:

@Override 
protected void finalize() throws Throwable { 
    try { 
     // Something here 
    } finally { 
     super.finalize(); 
    } 
} 
関連する問題