我的设备运行
Android 5.1.1,我发现如果我使用
Toast.makeText(this,"This is a toast",Toast.LENGTH_SHORT).show();
我懂了:
但是如果我使用getApplicationContext()而不是这个,
Toast.makeText(getApplicationContext(),Toast.LENGTH_SHORT).show();
我懂了:
两者都直接从活动中调用.
为什么是这样?
它与上下文关联的
主题有关.使用这是使用与应用程序上下文不同的
主题的上下文(我假设您的Activity或Fragment).
如果您有理由需要使用应用程序上下文,则可以将其包装到您的活动正在使用的主题(通常设置在AndroidManifest.xml中),并且应该显示“round”的吐司.
Toast.makeText(new ContextThemeWrapper(getApplicationContext(),R.style.AppTheme),Toast.LENGTH_SHORT).show();