4

私は約 1 年前にカスタム ロケール選択を実装しましたが、4.1 のリリース後、ユーザーは絶え間ないアクティビティの点滅に不満を持ち始めました。これが私が使用しているコードです(さまざまなSOの回答からコンパイルされています):

public final class TestApplication extends Application
{
    private Locale desiredLocale = new Locale("ru-RU");

    @Override
    public void onCreate() {
        super.onCreate();
        updateLocale(new Configuration());
    }

    @Override
    public void onConfigurationChanged(Configuration newConfig)
    {
        super.onConfigurationChanged(newConfig);
        updateLocale(newConfig);
    }

    private void updateLocale(Configuration newConfig) {
        newConfig.locale = desiredLocale;
        Locale.setDefault(desiredLocale);
        getBaseContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics());        
    }    
}

アプリケーションには、デバイスの向きを変更した後、Android によって毎秒再作成される空のアクティビティが 1 つだけ含まれています。サンプルソースはこちら。

この手法を使用するすべてのアプリケーションが無効になったようです。正しいアプローチは何ですか?

4

1 に答える 1