मान लीजिए कि मेरे पास कुछ सामान करने के लिए थ्रेड लॉन्च करने के लिए मेरे सेवा के ऑनस्टार्ट() हैंडलर में कोड है और फिर stopSelf() को कॉल करें।थ्रेड चल रहा है, जबकि सेवा में कॉलिंग रोकें()
स्टॉपसेल्फ() थ्रेड खत्म होने से पहले कॉल किया जाता है। वास्तव में क्या होता है?
मैंने इसे स्वयं से जांच लिया है और मेरा धागा इसे समाप्त होने तक निष्पादित करना जारी रखता है। क्या एंड्रॉइड स्टॉपसेल्फ() कॉल सुनता है, लेकिन थ्रेड समाप्त होने तक इसे स्थगित कर देता है?
@Override
public void onStart(Intent intent, int startid) {
new Thread(new Runnable() {
public void run() {
// TODO some long running operation
}
}).start();
stopSelf();
}
कृपया कुछ कोड पोस्ट करें ... – Kiril
यहां तक कि कोड का छोटा सा हिस्सा भी मदद करता है ... मल्टीथ्रेडिंग के कारण निष्पादन का आदेश स्पष्ट रूप से लागू नहीं होता है, इसलिए स्वीकृत उत्तर इंगित करता है: आप थ्रेड + संदर्भ "लीक" कर रहे हैं सेवा के लिए। – Kiril
क्या आप थ्रेड लॉन्च करने के लिए 'ऑनस्टार्ट' के बजाय 'ऑनस्टार्ट कमांड' का उपयोग नहीं करना चाहिए? –