आप कहते हैं कि आपने कई प्रश्नों को ऑनलाइन देखा, लेकिन आपने निश्चित रूप से इस या इस पर ध्यान नहीं दिया। यह सचमुच खोज करने में 5 मिनट का समय लगा।
वैसे भी, अगर मैं आप होते, तो इस मुद्दे को हल करने के लिए, मैं एक finally शामिल करता कनेक्शन बंद करते समय खंड। इसका मतलब है कि आप अपने डेटाबेस सहायक को एक स्थिर आवृत्ति चर के रूप में घोषित करेंगे और सिंगलटन संपत्ति की गारंटी के लिए सार फैक्टरी पैटर्न का उपयोग करेंगे।
आपकी चेतावनी इसलिए हो रही है क्योंकि आप यह सुनिश्चित नहीं कर रहे हैं कि केवल एक DatabaseHelper किसी भी समय कभी भी मौजूद रहेगा। अगर mInstance ऑब्जेक्ट प्रारंभ नहीं किया गया है, एक बनाया जाएगा। यदि कोई पहले ही बनाया जा चुका है तो उसे बस वापस कर दिया जाएगा।
यहाँ कोड है:
public ArrayList<ItemSubject> loadDataSubject() {
ArrayList<ItemSubject> arrayList = new ArrayList<>();
String select = "select * from " + TABLE_SUBJECT;
Cursor cursor = getData(select);
if (cursor != null && cursor.getCount() > 0) {
try {
cursor.moveToFirst();
for (int i = 0; i < cursor.getCount(); i++) {
String id = cursor.getString(cursor.getColumnIndex(TAG_ID));
String course = cursor.getString(cursor.getColumnIndex(TAG_COURSE_NAME));
....
ItemSubject objItem = new ItemSubject(id, courseId,...);
arrayList.add(objItem);
cursor.moveToNext();
}
finally {
if (cursor != null)
cursor.close();
}
}
return arrayList;
}
लेकिन चूंकि आप कहते हैं कि आपके प्रश्न में मेरा एकमात्र योगदान (जिसका उत्तर पहले ही अन्य पोस्ट में दिया जा चुका है) प्राथमिक अंग्रेजी की कमी को दूर करना है, तो मुझे यकीन नहीं है कि आप इसे पर्याप्त उत्तर के रूप में स्वीकार कर सकते हैं।