SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

SQLite डेटाबेस लीक पाया गया

मुझे यकीन नहीं है कि आप SQLiteOpenHelper का उपयोग कर रहे हैं ठीक से... आपको इसकी आवश्यकता नहीं है myDataBase फ़ील्ड, विचार यह है कि यह आपके लिए आपके डेटाबेस कनेक्शन का प्रबंधन करता है। इस तरह से उपवर्ग न करें... जब तक कि आप onCreate() . में काम नहीं कर रहे हैं आदि जो यहां पोस्ट नहीं किए गए हैं, ऐसा लगता है कि आप बस SQLiteOpenHelper . का उपयोग कर सकते हैं सीधे, यानी:

SQLiteOpenHelper sqlite = new SQLiteOpenHelper(ctx, DB_PATH+DB_NAME, null,
    DB_VERSION_NUMBER);

यह मानते हुए कि गतिविधि समाप्त करने से आपका पृष्ठभूमि कार्य भी रुक जाएगा, मैं AsyncTask.cancel(true) पर कॉल करने की अनुशंसा करता हूं आपके Activity.onPause() . से . सुनिश्चित करें कि डेटाबेस को रद्द () से साफ किया गया है।

और यदि आपका पृष्ठभूमि कार्य डेटाबेस को पढ़ने वाली एकमात्र चीज है तो इसे SQLiteOpenHelper इंस्टेंस बनाएं। स्थिर डेटा के साथ परेशानी में पड़ना आसान है, इसलिए IMHO से बचना सबसे अच्छा है। मैं कुछ इस तरह करूँगा:

protected class BackTask extends AsyncTask<String, Integer, String>
{
    private SQLiteOpenHelper sqlite;

    public void BackTask(Context ctx) {
        sqlite = new SQLiteOpenHelper(ctx, DB_PATH+DB_NAME, null,
                                      DB_VERSION_NUMBER);
    }
    @Override
    protected String doInBackground(String... params) 
    {
         try {
                //get requeste data from the database
                //access the web service
                return result;

              } catch (Exception e) { 
         }
         return null;
    }

    @Override
    protected void onCancelled() {
         sqlite.close();
    }

    @Override
    protected void onPostExecute(String result)
         sqlite.close();
         // Update UI here
    }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एप्लिकेशन के नए संस्करण को अपडेट करते समय sqlite डेटाबेस हटाएं

  2. SQLite में डेटा सम्मिलित करते समय प्राथमिक कुंजी संघर्षों से निपटना

  3. एंड्रॉइड एसक्यूलाइट डेटा अपडेट नहीं कर रहा है

  4. SQLite में किसी विशेष दिनांक/समय के बाद से सेकंड की संख्या की गणना करें

  5. SQLiteAssetHelper वर्ग का उपयोग कर डेटाबेस की प्रतिलिपि बनाने में असमर्थ