我刚刚得知,我可以使用:
Toast.makeText(MainActivity.this, R.string.some_string,Toast.LENGTH_SHORT).show();
要么,
Toast.makeText(getApplicationContext(), R.string.some_string,Toast.LENGTH_SHORT).show();
要显示在Android上致祝酒辞。
早些时候,我还以为背景竟是一种句柄父窗口的地方应该是显示器,但documentation不清楚这件事。
它也似乎不提究竟使用什么背景的吐司?
背景是像一个“句柄父窗口”子窗口像吐司?或者它实际上允许Toast.makeText
获得对资源的访问还是什么?
为什么它在所有如果上下文不要紧被使用?
看着Toast.java,我可以看到Context
仅用于:
Resources
getText
这实际上是相同#1因此很明显,有没有区别是否是Activity
或ApplicationContext
,除非这些资源依赖于主题(这是不是这样的,据我可以告诉)。
不,传给吐司上下文不句柄父窗口在任何意义。
您可以显示吐司只能从UI(主线程)上下文。如果你想从服务显示这个(但这是违背谷歌的准则),你可以这样说:Show toast at current Activity from service
对于祝酒词,这是短暂的,通常可以使用任何你想要的内容。通常情况下,你可以使用活动场景,但应用程序上下文是罚款为好。
我建议你使用的活动,你的情况。既然你从活动本身呼唤。该活动是一个框架,并且你使用上的活动的方法来获得另一个上下文(应用程序)。这是一个有点不必要。
然而,在的情况下你调用敬酒从别的地方可能是使用的应用程序,因为应用程序会永远在那里,而你的应用处于活动状态更好的主意。