为了账号安全,请及时绑定邮箱和手机立即绑定

活动上下文与应用程序上下文的区别

活动上下文与应用程序上下文的区别

慕容708150 2019-07-02 16:10:15
活动上下文与应用程序上下文的区别这让我很困惑,我在Android2.1-R8SDK中使用了这个:ProgressDialog.show(getApplicationContext(), ....);也在Toast t = Toast.makeText(getApplicationContext(),....);使用getApplicationContext()双双崩溃ProgressDialog和Toast..这让我想到了这个问题:活动上下文和应用程序上下文之间的实际区别是什么,尽管使用了“上下文”的措辞?
查看完整描述

3 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

它们都是语境,但应用程序实例与应用程序的生命周期相关联,而活动实例与活动的生命周期相关联。因此,他们可以访问有关应用程序环境的不同信息。

如果你在getApplicationContext它指出,只有当您需要一个生命周期与当前上下文分离的上下文时,才应该使用它。这在你的两个例子中都不适用。

活动上下文可能包含一些有关当前活动的信息,这些信息是完成这些调用所必需的。如果您显示了确切的错误消息,可能会指出它到底需要什么。

但是通常,除非您有充分的理由不使用活动上下文,否则请使用活动上下文。


查看完整回答
反对 回复 2019-07-02
?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

我发现这个表对于决定何时使用不同类型的上下文非常有用:


  1. 应用程序可以从这里启动一个活动,但它需要创建一个新任务。这可能适合特定的用例,但可以在应用程序中创建非标准的回堆栈行为,通常不推荐或认为是良好实践。
  2. 这是合法的,但通货膨胀将与您正在运行的系统的默认主题,而不是在您的应用程序中定义的主题一起完成。
  3. 如果接收方为NULL,则允许在Android4.2及更高版本上获取粘性广播的当前值。

原创文章这里.


查看完整回答
反对 回复 2019-07-02
?
慕森卡

TA贡献1806条经验 获得超8个赞

这显然是API设计的不足。首先,活动上下文和应用程序上下文是完全不同的对象,因此使用上下文的方法参数应该使用ApplicationContextActivity直接,而不是使用父类上下文。第二,文档应该指定使用或不显式使用哪个上下文。


查看完整回答
反对 回复 2019-07-02
  • 3 回答
  • 0 关注
  • 580 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信