onPrepareSubMenu is never called even when hasSubMenu returns true
<p>Below is my ActionProvider class</p>

<pre><code>import java.util.Locale;

import android.content.Context;
import android.util.Log;
import android.view.ActionProvider;
import android.view.LayoutInflater;
import android.view.SubMenu;
import android.view.View;
import android.widget.ImageButton;

public class LocaleActionProvider extends ActionProvider {
private static final String TAG = "LocaleActionProvider";

Context mCtx;

public LocaleActionProvider(Context context) {
    super(context);
    mCtx = context;
}

@Override
@Deprecated
public View onCreateActionView() {
    // Inflate the action view to be shown on the action bar.
    LayoutInflater layoutInflater = LayoutInflater.from(mCtx);
    View view = layoutInflater.inflate(R.layout.action_provider_locale,
            null);
    ImageButton button = (ImageButton) view.findViewById(R.id.localeButton);
    // Set up flag icon for specific locale
    Locale locale = Locale.getDefault();
    String locLan = locale.getLanguage();

    if (locLan.equals(Locale.CHINESE.getLanguage())) {
        button.setImageResource(R.drawable.insready);
    } else if (locLan.equals(Locale.ENGLISH.getLanguage())) {
        button.setImageResource(R.drawable.ic_action_locale_en);
    } else if (locLan.equals(Locale.FRENCH.getLanguage())) {
        button.setImageResource(R.drawable.ic_action_search);
    }
    /*
     * button.setOnClickListener(new View.OnClickListener() {
     * 
     * @Override public void onClick(View v) { // Do something... } });
     */
    return view;
}

@Override
public boolean hasSubMenu() {
    return true;
}

@Override
public void onPrepareSubMenu(SubMenu subMenu) {
    Log.i(TAG, "onPrepareSubMenu()");
    // Clear since the order of items may change.
    subMenu.clear();
    subMenu.add(0, 0, 0, "简体中文");
    subMenu.add(0, 1, 1, "English");
    subMenu.add(0, 2, 2, "French");
}

@Override
public boolean onPerformDefaultAction() {
    Log.i(this.getClass().getSimpleName(), "onPerformDefaultAction");

    return super.onPerformDefaultAction();
}
}
</code></pre>

<p>I have tried to use debugger or Log.i() to monitor onPrepareSubMenu() function. But onPrepareSubMenu() is never called, in other words the debugger never stops at the breakpoint and there is no log entry.</p>
