Я использую приведенный ниже код в моем activity class
:Android: Утечка памяти
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
, потому что я буду использовать это в своем Service class
.
Мои 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
Можете ли вы дать немного больше информации о том, почему вам нужен экземпляр действия в вашем классе обслуживания? –
@Abhishek V. Мой код огромен. Прости. –