java - 为什么要将上下文传递给 Intent 的构造函数?

标签 java android

我试图理解为什么我们将 Context 实例传递给 Intent 构造函数?为什么执行 new Intent(SomeActivity.class) 还不够? Android 是否强制执行某些限制或什么?

我试图查看代码,但我发现它获取了包名称。

Intent documentation

最佳答案

要明确识别 Android 应用程序中的 Activity,您需要同时拥有应用程序的名称(又名 Android 应用程序包)和 Activity 的全名(java 包名称 + Activity 类的类名)。这些正是您在构造函数中提供的那两个参数。 Context用于获取Android应用包名,class用于获取完整的类名。

具有相同全名的 Activity 可以在两个应用程序中使用。如果您不提供 Context,Android 将不知道 Activity 属于哪个应用程序。

关于java - 为什么要将上下文传递给 Intent 的构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19611432/

相关文章:

java - @OneToOne 或 @ManyToOne 引用未知实体

java - 停止 android 中的自定义处理程序

java - 使用 Dagger 2 进行 Presenter 注入(inject)

java - 有没有办法为 Eclipse View 指定多个处理程序类?

Android AutoCompleteTextView 与正则表达式?

java - 单击 ListView 项目时应用程序不断崩溃

android - 如何处理 Firebase Auth account-exists-with-different-credential 错误

android - 使用 glide 时出错 - 您无法为已损坏的 Activity 启动加载

java - FAB 按钮未显示在嵌套 ScrollView 上

android - 按钮超出布局时会被挤压