私はinvalidateOptionsMenu()
を使用してアクションバーを更新していますが、地獄のようなアプリの速度が遅くなります。 invalidateOptionsMenu()
は無限ループになります。ここに私のコードです -invalidateOptionsMenu()のためにAndroid UIが非常に遅い
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if((lockScreenSetting(getContentResolver()) == 1)){
getMenuInflater().inflate(R.menu.filex, menu);
return true;
} else{
return false;
}
}
public int lockScreenSetting (ContentResolver contentResolver)
{
boolean isLockEnabled = true;
KeyguardManager km = (KeyguardManager) this.getApplicationContext().getSystemService(Context.KEYGUARD_SERVICE);
isLockEnabled = km.isKeyguardSecure();
long mode = android.provider.Settings.Secure.getLong(contentResolver, PASSWORD_TYPE_KEY,
DevicePolicyManager.PASSWORD_QUALITY_SOMETHING);
// if (mode == DevicePolicyManager.PASSWORD_QUALITY_SOMETHING)
if (android.provider.Settings.Secure.getInt(contentResolver, Settings.Secure.LOCK_PATTERN_ENABLED, 0) == 1){
invalidateOptionsMenu();
return Constants.UNLOCK_WITH_PATTERN;
}
else if(isLockEnabled){
invalidateOptionsMenu();
return Constants.UNLOCK_WITH_PIN;
}
else{
invalidateOptionsMenu();
return Constants.UNLOCK_WITH_NONE_OR_SLIDER;
}
}
どうすれば解決できますか?
ありがとうございます。少しの変更が必要でした。 onResume()からlockScreenSettingを呼び出す必要があり、onCreateOptionsMenu()からではありません。 –
ようこそ。あなたはそれを整理してうれしいです。 –