安卓系统中的Infinite Crouton问题只出现过一次



我使用以下代码显示了面包块。在应用程序的第一次运行时,Crouton出现了。但若我点击返回按钮并从启动器或最近的列表重新打开应用程序,Crouton就不会出现。

公共类MainActivity扩展ActionBarActivity{

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
protected void onResume() {
    super.onResume();
    Style infinite = new Style.Builder().setBackgroundColorValue(
            Style.holoBlueLight).build();
    Configuration configuration = new Configuration.Builder().setDuration(
            Configuration.DURATION_INFINITE).build();
    Crouton crouton = Crouton.makeText(this, "Hello world", infinite);
    crouton.setConfiguration(configuration);
    crouton.show();
} 

}

在onCreate或onResume中显示面包块似乎没有任何效果。

我可以通过保持对显示的面包块的引用并在onPause中取消面包块来使其按预期工作。

public class MainActivity extends Activity {
    private Crouton mCrouton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
    }
    @Override
    protected void onResume() {
        super.onResume();
        Style infinite = new Style.Builder().setBackgroundColorValue(
                Style.holoBlueLight).build();

        Configuration configuration = new Configuration.Builder().setDuration(
                Configuration.DURATION_INFINITE).build();
        mCrouton = Crouton.makeText(this, "Hello world", infinite);
        mCrouton.setConfiguration(configuration);
        mCrouton.show();
    }
    @Override
    protected void onPause() {
        super.onPause();
        mCrouton.cancel();
    }
}

还有其他方法可以解决这个问题。

  • Crouton.clearCroutonsForActivity(this);
  • Crouton.cancelAllCroutons();

使用适合您需求的产品。

相关内容

最新更新