Действия Android хранятся в памяти, нет слушателей или ссылок

У меня есть 2 вида деятельности (скажем, A и B). Когда я нажимаю кнопку на A, я запускаю экземпляр B через StartActivity. Когда я возвращаюсь к A и снова нажимаю кнопку, B все еще находится в памяти, и он загрузит новый экземпляр B поверх старого. Это продолжается до тех пор, пока у меня не кончится память, старые действия не очищаются сборщиком мусора.

В моей деятельности нет слушателей или чего-то такого, что могло бы сохранить это в памяти. Я называю финиш, и я понимаю, что действия очищаются Android, а не мной. Тем не менее, действия не очищаются Android, даже на малой памяти..

Почему это происходит?

редактировать:

код, где я называю финиш (Занятие B): (напечатано в csharp, monoandroid, xamarin)

    void GoBack()
    {
        if (MadeChanges) {
            Helpers.Dialogs.Show (this,
                null,
                Resources.GetString(Resource.String.dialogitemnotsaved),
                new Helpers.Dialogs.Button (
                    Resources.GetString(global::Android.Resource.String.Yes),
                    () => {
                        Finish ();
                        AnimationHelper.FinishActivityAnimation (this);
                    }
                ),
                new Helpers.Dialogs.Button (
                    Resources.GetString(global::Android.Resource.String.Cancel),
                    null
                )
            );
        } else {
            Finish ();
            AnimationHelper.FinishActivityAnimation (this);
        }
    }

    public override void OnBackPressed ()
    {
        GoBack ();
    }

    public override bool OnOptionsItemSelected(IMenuItem item)
    {
        switch (item.ItemId)
        {
        case global::Android.Resource.Id.Home:

            GoBack ();
            return true;
        default:
            return base.OnOptionsItemSelected(item);
        }
    }

как открыть действие B из действия A:

            Intent intent = new Intent (Activity, typeof(ActivityB));
            intent.AddFlags (ActivityFlags.SingleTop);
            this.StartActivityForResult (intent, REFRESH);
            AnimationHelper.StartActivityAnimation (this.Activity);

0 ответов

Другие вопросы по тегам