मैं एक वर्ग के साथ है और इस उदाहरण से लिया निम्न कोड के साथ एक नई परियोजना बनाई है: https://developers.google.com/app-indexing/android/publish#add-app-indexing-api-callsमेमोरी रिसाव एंड्रॉयड स्टूडियो द्वारा पता लगाया
जब मैं डिवाइस कई बार बारी बारी से और फिर पर डंप जावा ढेर क्लिक करें एंड्रॉइड स्टूडियो में और फिर विश्लेषण पर क्लिक करें। मुझे परिणाम मिलेगा कि मेरी मुख्य गतिविधि लीक हो गई है।
कारण मैंने इस उदाहरण प्रोजेक्ट को बनाया है, क्योंकि मेरे पास एक मौजूदा ऐप है जिसमें मेमोरी लीक समस्या है (स्ट्रिक्टोड और एंड्रॉइड स्टूडियो ऐसा कहता है), और मेरा निष्कर्ष यह है कि यह मेरा ऐप इंडेक्स कोड है जो कारण बन रहा है मुसीबत।
क्या यह एंड्रॉइड स्टूडियो में एक बग है या क्या यह वास्तविक स्मृति रिसाव है?
public class MainActivity extends AppCompatActivity {
private GoogleApiClient mClient;
private Uri mUrl;
private String mTitle;
private String mDescription;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mClient = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
mUrl = Uri.parse("http://examplepetstore.com/dogs/standard-poodle");
mTitle = "Standard Poodle";
mDescription = "The Standard Poodle stands at least 18 inches at the withers";
}
public Action getAction() {
Thing object = new Thing.Builder()
.setName(mTitle)
.setDescription(mDescription)
.setUrl(mUrl)
.build();
return new Action.Builder(Action.TYPE_VIEW)
.setObject(object)
.setActionStatus(Action.STATUS_TYPE_COMPLETED)
.build();
}
@Override
public void onStart() {
super.onStart();
mClient.connect();
AppIndex.AppIndexApi.start(mClient, getAction());
}
@Override
public void onStop() {
AppIndex.AppIndexApi.end(mClient, getAction());
mClient.disconnect();
super.onStop();
}
}
शायद आपको GoogleApiClient.Bilder कोड में खोदना चाहिए, cuz यह आपकी गतिविधि का संदर्भ देता है। मुझे आपके द्वारा पोस्ट किया गया कोई अन्य कोड नहीं मिल रहा है जो रिसाव का कारण बन सकता है। – SamMao
ऑनस्टॉप को ओएस द्वारा नहीं बुलाया जा सकता है, आपको ऑनस पर उपयोग करना चाहिए – greywolf82