首页 文章

为什么在创建Intent实例时传递了'this'?

提问于
浏览
0

我是Android应用程序开发的新手 . 我试图了解什么是意图及其用途 .

我的问题是,在启动另一个活动时,为什么'this'关键字作为intent的context参数传递?

Intent foo = new Intent(this, viewContacts.class);

我理解any活动扩展了Context类,但为什么我们传递 activity context 而不是 application context

My Point-

当另一个活动开始时,当前活动将被销毁,但其上下文将被传递给另一个活动 . 参考this文章,它说

避免与上下文相关的内存泄漏的最明显方法是避免在其自身范围之外转义上下文 .

那么,我们是不是将当前活动的上下文传递给第一个超出范围的另一个上下文?这不是内存泄漏的例子吗?

1 回答

  • 3

    为什么我们传递活动上下文而不是应用程序上下文?

    要么在这里工作 . thisgetApplicationContext() 输入更少,执行速度更快 .

    当另一个活动开始时,当前活动将被销毁,但其上下文将传递给另一个活动 .

    你假设 Intent 持有 Context . 它不是 .

    那么,我们是不是将当前活动的背景传递给另一个第一个超出范围的活动?

    没有 .

    Intent 可以是隐式的也可以是显式的 . 显式 Intent 是附加了 ComponentName 的显式标识,用于标识此 Intent 所针对的组件的特定应用程序(按包名称)和Java类(按完全限定类名称) . 提供 ContextClass 对象的双参数构造函数用于构建 ComponentName . 构造函数完成后, IntentComponentName 都不会保持 Context .

相关问题