Какие предметы мне нужно разместить в каждом упражнении? - PullRequest
0 голосов
/ 11 октября 2018

Какие предметы мне нужно разместить в каждом упражнении для свободной памяти?Я использую обзор повторного просмотра, просмотр списка, просмотр текста, edidtext и кнопки.

Является ли хорошей практикой устанавливать их в null при методе уничтожения?

 private List<InventoryPreviewClass> mItems;
private ListView mlistview;
private EditText mSearch;
private EditText etSearchAlwaysOn;
private LinearLayout mContainer;
private bool mAnimatedDown;
string dpPath;
private bool mIsAnimating;
private MyListViewAdapterInventory mAdapter;

SQLiteConnection db;
private TextView mTxtHeaderFirstName;
private TextView mTxtHeaderLastName;
private bool mFirstNameAscending;
private bool mLastNameAscending;
List<String> ID;
List<String> Name;
Spinner CategorySpinner;

protected override void OnDestroy()
{
    base.OnDestroy();
    mItems = null;
    mlistview = null;
    mSearch = null;
    etSearchAlwaysOn = null;
    mContainer = null;

    dpPath = null;
    mAdapter = null;
    db = null;
    mTxtHeaderFirstName = null;
    mTxtHeaderLastName = null;
    ID = null;
    Name = null;
    CategorySpinner = null;


}

Нужно ли утилизировать их все?Или он автоматически избавится от этих предметов, если они не используются?

1 Ответ

0 голосов
/ 11 октября 2018
  1. Какие предметы мне нужно разместить в каждом упражнении для свободной памяти?Я использую обзор повторного просмотра, просмотр списка, просмотр текста, edidtext и кнопки.

  2. Является ли хорошей практикой устанавливать их в null при методе уничтожения?

  3. Нужно ли их утилизировать?Или он автоматически выберет эти предметы, если они не используются?

Чтобы ответить на ваши вопросы:

  1. Ни один из них.

  2. Нет, это не очень хорошая практика, и она не нужна.Вместо этого рекомендуется не хранить ссылку на какое-либо пропущенное действие, что приведет к утечке памяти, а также не позволит системе уничтожить само действие.Если вам необходимо сохранить ссылку на переданное действие, вместо этого сохраните ссылку на контекст приложения:

    public class MyHelper {
    private static MyHelper instance;     // for instance singleton helper
    private final Context mContext;
    
    private MyHelper(@NonNull Context context) {
        mContext = context.getApplicationContext();
        // ...
    }
    
  3. Нет необходимости.Система будет gcc их при необходимости.Система также убьет ваше приложение и ваш процесс в любой момент, если в нем будет мало памяти, но в этот момент это уже не имеет значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...