t0m*_*13b 222 android android-context
这让我很难过,我在Android 2.1-r8 SDK中使用它:
ProgressDialog.show(getApplicationContext(), ....);
Run Code Online (Sandbox Code Playgroud)
还有
Toast t = Toast.makeText(getApplicationContext(),....);
Run Code Online (Sandbox Code Playgroud)
使用getApplicationContext()崩溃ProgressDialog和Toast....导致我这个问题:
尽管分享了"上下文"的措辞,但活动上下文和应用程序上下文之间的实际差异是什么?
Che*_*mon 238
它们都是Context的实例,但应用程序实例与应用程序的生命周期相关联,而Activity实例与Activity的生命周期相关联.因此,他们可以访问有关应用程序环境的不同信息.
如果您阅读getApplicationContext上的文档,它会注意到,如果您需要一个生命周期与当前上下文不同的上下文,则只应使用此文档.这不适用于您的任何一个示例.
活动上下文可能包含有关完成这些调用所必需的当前活动的一些信息.如果您显示确切的错误消息,可能能够指出它究竟需要什么.
但一般来说,除非你有充分的理由不使用活动上下文.
Com*_*ode 163
我发现这个表对于决定何时使用不同类型的上下文非常有用:
原文在这里.
luc*_*cas 32
这显然是API设计的不足之处.首先,活动上下文和应用程序上下文是完全不同的对象,因此使用上下文的方法参数应该使用ApplicationContext或Activity直接使用,而不是使用父类Context.第二,doc应指定要使用或不使用的上下文.
use*_*311 12
我认为原因ProgressDialog是附加到支持ProgressDialog对话的活动,因为对话在活动被销毁后无法保留,因此需要传递this(ActivityContext)也会被活动破坏,而ApplicationContext甚至在活动获得后仍然存在销毁.
| 归档时间: |
|
| 查看次数: |
114981 次 |
| 最近记录: |