Почему жизненный цикл другой активности не вызывается, кроме метода OnCreate () - PullRequest
0 голосов
/ 27 июня 2018

Весь жизненный цикл активности переопределен, поэтому я ожидаю, что в какой-то момент он будет запущен, но это не так. Я попытался переопределить их все для теста, хотя мне нужен только метод OnResume (). Кто-нибудь уже сталкивался с этим сценарием и решил его? Я не могу вызвать это вообще: (

Что я пытался их вызвать:
- Нажата домашняя кнопка для запуска OnPause и OnStop - Failed
-Вернуть в приложение, чтобы вызвать OnResume, OnRestart - Ошибка
- Нажата кнопка «Назад» для запуска OnPause и OnStop - Ошибка
-Вернуть в приложение, чтобы вызвать OnResume, OnRestart - Ошибка
-Перейти к следующему действию, чтобы вызвать OnPause и OnStop - Failed
- Нажата кнопка «Назад» для запуска OnResume предыдущего действия - Failed
-Reset App для запуска OnCreate, OnResume - Успешно при OnCreate, Сбой при OnResume
- убить приложение, чтобы вызвать OnPause, OnStop и OnDestroy - не удалось

Что происходит? Я попытался установить значение NoHistory в true, но это только вызвало OnCreate. Установите значение false и вернулись к предыдущему выпуску

КОД:

using System;
using Android.App;
using Android.OS;
using Android.Widget;
using Android.Content;
using Android.Views;
using BLL;
using Android.Views.InputMethods;
using static Android.Views.View;
using Android.Preferences;


namespace H2POS
{
    /// <summary>
    /// Created By: Makath Valdez
    /// </summary>
    [Activity(Label = "Activity_Login", NoHistory = false, ScreenOrientation = Android.Content.PM.ScreenOrientation.SensorLandscape, Theme = "@style/Theme.FullScreenBaseDesign")]
    public class Activity_Login : Activity
    {
        #region Global Variables
        KeypadHandler keypadHandlerUser;
        KeypadHandler keypadHandlerPass;
        EditText etUsername;
        EditText etPassword;

        //keypad initialization
        Button btn1;
        Button btn2;
        Button btn3;
        Button btn4;
        Button btn5;
        Button btn6;
        Button btn7;
        Button btn8;
        Button btn9;
        Button btn0;
        Button btn00;

        ImageButton btnDel;

        Button btnLogin;
        LinearLayout llUsername;
        LinearLayout llPassword;
        #endregion
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.Layout_Login);
            Window.SetSoftInputMode(SoftInput.StateAlwaysHidden);

            try
            {
                m2_initialization();
                m4_setUpAllClickable();

                ISharedPreferences prefs = PreferenceManager.GetDefaultSharedPreferences(this);
                bool databaseInitialized = prefs.GetBoolean(ENTITIES.STATIC.ENT_SystemValues.databaseInitialized, false);

                if (!databaseInitialized)
                {
                    new BLL_HardCode().upsertSystemValues();
                    ISharedPreferences prefs2 = PreferenceManager.GetDefaultSharedPreferences(this);
                    ISharedPreferencesEditor editor = prefs2.Edit();
                    editor.PutBoolean(ENTITIES.STATIC.ENT_SystemValues.databaseInitialized, true);
                    // editor.Commit();    // applies changes synchronously on older APIs
                    editor.Apply();        // applies changes asynchronously on newer APIs
                }
            }
            catch (Exception e)
            {
                UIHelper.ToastMessage(this, ENTITIES.STATIC.ENT_NegativeResponse.somethingWentWrong);
            }
        }

        protected override void OnResume()
        {
            UIHelper.ToastMessage(this, "OnResume was called");
            base.OnResume();

            //check if auto date time is enabled
            new AccountSettings().IsAutoDateTimeEnabled(this);
        }

        protected override void OnPause()
        {
            UIHelper.ToastMessage(this, "OnPause was called");
            base.OnPause();
        }

        protected override void OnStop()
        {
            UIHelper.ToastMessage(this, "OnStop was called");
            base.OnStop();
        }

        protected override void OnDestroy()
        {
            UIHelper.ToastMessage(this, "OnDestroy was called");
            base.OnDestroy();
        }

        protected override void OnRestart()
        {
            UIHelper.ToastMessage(this, "OnRestart was called");
            base.OnRestart();
        }
    }

    //Other code removed
}

1 Ответ

0 голосов
/ 27 июня 2018

Я не знаю, что на самом деле произошло, но после того, как я закрыл свою Visual Studio, а затем снова открыл ее с моим проектом, теперь вызывается другой жизненный цикл. Я думаю, что проблема в Visual Studio.

Перед перезагрузкой я очистил его, затем пересобрал и развернул в эмуляторе. То же самое я сделал, чтобы развернуть в моем физическом устройстве, но тот же результат, другой жизненный цикл не работает.

После перезагрузки тот же процесс, и теперь он хорош.

Очистить, а затем перестроить не получилось, но перезапуск Visual Studio потрясающий: D

...