내 activity class
: 안드로이드 : 메모리 누수
public static Activity list_Addresses_Activity;
그리고 나는이에서 사용되는 내 onCreate
에서
list_Addresses_Activity = this;
를하지만 오류가 발생합니다 제품은 아래와 같은
Do not place Android context classes in static fields; this is a memory leak (and also breaks Instant Run)
내에서 이것을 사용할 것이므로 static
에서 사용해야합니다.. 내 CloseActivies.class
:
public class CloseActivies {
Activity a;
Activity b;
Activity c;
protected void CLSActivities(Activity ListAddresses, Activity ListOrder, Activity SendReports) {
a = ListAddresses;
b = ListOrder;
c = SendReports;
if (ListAddressesActivity.FlagLiveAddress && a != null) {
Log.e("ADASFSDAGWEG", "X");
a.finish();
ListAddressesActivity.FlagLiveAddress = false;
}
if (ListOrderActivity.FlagLiveOrder && b != null) {
Log.e("ADASFSDAGWEG", "Y");
b.finish();
ListOrderActivity.FlagLiveOrder = false;
}
if (SendReportsActivity.FlagSendReport && c != null) {
Log.e("ADASFSDAGWEG", "Z");
c.finish();
SendReportsActivity.FlagSendReport = false;
}
}
protected void CLSActivities() {
if (ListAddressesActivity.FlagLiveAddress && a != null) {
Log.e("ADASFSDAGWEG", "X");
a.finish();
ListAddressesActivity.FlagLiveAddress = false;
}
if (ListOrderActivity.FlagLiveOrder && b != null) {
Log.e("ADASFSDAGWEG", "Y");
b.finish();
ListOrderActivity.FlagLiveOrder = false;
}
if (SendReportsActivity.FlagSendReport && c != null) {
Log.e("ADASFSDAGWEG", "Z");
c.finish();
SendReportsActivity.FlagSendReport = false;
}
}
}
정적 변수가 클래스 영역에 있고 특정 객체 내에 있지 않기 때문에 따라서 객체가 해제 되더라도 정적 변수는 메모리에서 공간을 차지합니다. – Vinodh
Service 클래스에서 activity 인스턴스가 필요한 이유에 대한 정보를 좀 더 제공 할 수 있습니까? –
@Abhishek V. 내 코드가 크다. 죄송합니다. –