Я хотел бы получить ресурсы рабочего стола для своего приложения только на определенный период времени. Я достигаю этого, обновляя значение 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
обратного вызова?