У меня есть вопрос, касающийся утечки памяти в моем Java коде:
У меня есть служба, которая запускается каждую секунду (в производственном процессе она запускается каждую минуту) Когда я запускаю Android Studio Memory- Профилировщик, я вижу, что каждый раз, когда выполняется этот код, значение «Выделенной памяти» увеличивается на 6
. Итак, я думаю, что этот код протекает? Очевидно, он очень медленно просеивает, но мне интересно, в чем проблема с этим кодом? Что я могу сделать, чтобы это исправить? Или это «нормальное» поведение?
![enter image description here](https://i.stack.imgur.com/0vgwA.png)
SyncService. java
public class SyncService extends Service {
@Override
public void onCreate() {
Context context = getApplicationContext();
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
if(!Helper.isNetworkAvailable(context)){
Log.i(TAG, "Offline");
return;
}
// ...
}
}, 1000, 1000);
}
}
Помощник. java
public class Helper {
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivityManager
= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
}
Если я комментирую вызов Helper.isNetworkAvailable(context)
выделенного значения остается на месте.