Могу ли я зависеть от событий обратного вызова жизненного цикла приложения для обновления значения конфигурации моей активности? - PullRequest
0 голосов
/ 14 октября 2019

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

public class MyApplication extends Application implements Application.ActivityLifecycleCallbacks {

    public static final String TAG = "APP_APP";

    public static int UIMODE_VAL1 = Configuration.UI_MODE_TYPE_UNDEFINED;

    public MyApplication() {
        Log.i(TAG, "Inside application class");
        registerActivityLifecycleCallbacks(this);
    }

    public static void toogleUIMode() {
        UIMODE_VAL1 = (UIMODE_VAL == Configuration.UI_MODE_TYPE_DESK) ?
                Configuration.UI_MODE_TYPE_UNDEFINED : Configuration.UI_MODE_TYPE_DESK;
    }

    @Override
    public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
        Log.i(TAG, "Inside on activity created : " + activity.getClass().getName());
        updateUIConfig(activity);
        Log.i(TAG, "Updated the configuration value");
    }

    @Override
    public void onActivityStarted(Activity activity) {

    }

    @Override
    public void onActivityResumed(Activity activity) {

    }

    @Override
    public void onActivityPaused(Activity activity) {

    }

    @Override
    public void onActivityStopped(Activity activity) {

    }

    @Override
    public void onActivitySaveInstanceState(Activity activity, Bundle outState) {

    }

    @Override
    public void onActivityDestroyed(Activity activity) {

    }

    public void updateUIConfig(Activity activity) {
        Resources resources = activity.getResources();
        Configuration configuration = resources.getConfiguration();
        configuration.uiMode = UIMODE_VAL1;
        resources.updateConfiguration(configuration, resources.getDisplayMetrics());
    }
}

Я основываю свою логику на том факте, что будет получен обратный вызов onActivityCreatedдо onCreate всегда. Есть ли исключения из этого? И, если возможно, есть документация, в которой говорится об этом (я не могу их найти)?

Может ли быть случай, когда onCreate Действия получено до получения onActivityCreated обратного вызова?

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