使用 Context 启动另一个 Activity

2024-01-04

要启动活动,您需要一个意图,例如:

Intent i = new Intent(context, class)

因此,要填写上下文参数,可以使用以下几个选项:

  • Use MyActivity.this要不就this
  • Use getApplicationContext()
  • Use getBaseContext()

我确信还有一两个选择。 这些选项都出现在某种教程中,一个使用第一个,下一个使用第三个选项。

那么我应该使用哪一个呢?这还重要吗?不同情况有不同的处理方式吗?


是的,不同情况下有所不同,

这取决于范围。假设您要在全局类中创建一个方法extends Application创建一个Toast在你的每一堂课中都使用Application您可以使用getApplicationContext()创建它。

如果您想创建仅限于该特定活动的视图,您可以使用Activity.this

另外,如果您想在某些内部类中创建一个 AlertDialog ,请说AsyncTask,那么你必须使用Activity.this,因为AlertDialog是要链接到Activity itself.

也不要使用getBaseContext()只需使用Context你正在拥有的。要获取更多信息,您可以查看this Answer https://stackoverflow.com/questions/1026973/android-whats-the-difference-between-the-various-methods-to-get-a-context.

所以,真正问题的答案最好使用Activity.this开始新的Activity.

Intent intent = new Intent(Current_Activity.this, Calling.class);
startActivity(intent);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Context 启动另一个 Activity 的相关文章

随机推荐

  • 在java中实现一个简单的泛型函数时编译错误?

    这是我的代码 public class ArrayAlgorithm public static void main String args TODO Auto generated method stub return public sta
  • pymongo - 消息长度大于服务器最大消息大小

    线for doc in collection find is timeline valid True 给出消息长度错误 如何获取所有集合而不出现错误 我知道关于find limit 但我不知道如何使用它 Code from openpyxl
  • 从 MySQL JSON 数组中获取不同的值

    我得到了一个 MySQL 数据表 其中包含一个包含值列表的 JSON 列 约束表 ID CONSTRAINT TYPE CONSTRAINT VALUES 2 testtype 801 751 603 753 803 我想要的是一个不同的
  • 使用 PHP 客户端为 Google Calendar API 设置推送通知

    我想设置Google 日历 API 的推送通知 https developers google com google apps calendar v3 push每当 Google 日历 api 上的特定资源发生更改时 我的服务器都会收到通知
  • c#:为什么使用 DLL?

    我正在开发一个大型 C 项目 我想知道为什么人们在他们的应用程序中使用 DLL 我知道 dll 文件 如果我错了 请更正 包含一些函数 但为什么我们不将这些函数放入我们的主 c 应用程序中呢 Thanks 大部分都在答案中总结了对于这个问题
  • H.264 over RTP - 识别 SPS 和 PPS 帧

    我有来自 IP 摄像机的原始 H 264 流 封装在 RTP 帧中 我想将原始 H 264 数据放入文件中 以便我可以将其转换为ffmpeg 因此 当我想将数据写入原始 H 264 文件时 我发现它必须如下所示 00 00 01 SPS 0
  • 由于索引导致记录数量增加,SQLite 插入速度变慢

    原问题 背景 众所周知 SQLite需要微调 https stackoverflow com questions 1711631 how do i improve the performance of sqlite实现大约 50k 插入 秒
  • 何时在表单 ID 前添加冒号前缀

    我有两种形式的两个数据表 forma and formg 每个表格里面都有一个p dataTable groupsa and groupsg 在每个数据表中都有一个显示图像的自定义列 h graphicImage 称为fava and fa
  • jQuery mouseoverIntent 插件在父级悬停时显示/隐藏 div,但悬停时保持显示

    我有一个按钮 当鼠标悬停在其上方时 会在其正下方显示一个 div 当悬停 鼠标悬停 时 div 消失 这一切都运行良好 但现在我需要将 div 保留在按钮下方 显示用户是否将鼠标悬停在该 div 上 以与 div 内的内容进行交互 目前这是
  • 如何编写向上一层然后向下进入另一个目录的路径

    我正在尝试打开一个文件Java程序 比如Program java 使用相对路径 我有两个目录如下 ProjectWork Business Scenarios SC01 txt ProjectWork SourceCode Program
  • 获取 MPMediaItem 添加到 iTunes 库的日期

    是否可以 我在 MPMediaItemProperty 字符串中没有找到类似的内容 也许私有API 查看文档 方法列表没有对应的字段 这让您可以选择延长MPMediaItem与一个新的MPMediaItemProperty自己填写 添加日期
  • C++ 从子目录加载 DLL?

    我是 C 的 隐藏 黑暗地方 的新手 我想知道如何从当前可执行文件运行的不同目录或子目录中加载 dll 文件 Ex MyAppDirectory MyApp exe SomeDLL dll AnotherDLL dll SubDirecto
  • Ninject:使用 NSubstitute 自动模拟?

    任何人都可以帮忙 我在使用 Ninject 和 NSubstitute 之间可用的自动模拟时遇到问题 实际上该包是一个名为 ninject 的打包包Ninject MockingKernel NSubstitute这应该允许我使用 Ninj
  • 复制后的 std::vector 容量

    vector operator 会改变向量容量吗 如果是这样 怎么办 Vector的复制构造函数是否复制容量 我查看了文档但找不到具体的答案 它依赖于实现吗 向您保证的是 该向量有足够的容量来存储其元素 明显地 在当前容量已满之前 向量不会
  • 您何时在 Objectify for GAE 中注册课程?

    所以这可能是一个愚蠢的问题 但是你什么时候注册课程 ObjectifyService register User class 目前 我正在一个类似接口的类的构造函数中执行此操作 我在其他类中使用该类来简化专门针对我的应用程序的数据存储的使用
  • 如何执行具有多个 WHERE 子句的 MySQL 查询?

    您将如何执行 mysql 查询 其中用户可以从多个选项中进行选择 Fox 示例 我有一个用户可以用来搜索房屋的表单 现在我有一个选择框 您可以在其中选择您想要房子 公寓还是其他什么 然后我有第二个框 您可以在其中选择例如您想要房屋或公寓所在
  • 在 debian wheezy 上的 virtualenv 中使用 pip 安装 matplotlib 时出现 GotoBLAS 错误

    我正在尝试在 debian wheezy 上的 virtualenv 中使用 pip 安装 matplotlib 我收到以下消息 Running setup py egg info for package matplotlib GotoBL
  • XMLHttpRequest 无法加载。?

    I by chrome gt Inspect element gt console得到这个错误 XMLHttpRequest 无法加载 来源不允许 访问控制允许来源 这是解决什么问题呢 您不能通过 XMLHttpRequest 向其他域或子
  • 折叠矩阵,将一列中的值与另一列中的值相加

    我有一个包含三列的矩阵 县 日期和急诊室就诊次数 每个县的日期都会重复 如下所示 仅作为示例 County A 1 1 2012 2 County A 1 2 2012 0 County A 1 3 2012 5 etc County B
  • 使用 Context 启动另一个 Activity

    要启动活动 您需要一个意图 例如 Intent i new Intent context class 因此 要填写上下文参数 可以使用以下几个选项 Use MyActivity this要不就this Use getApplicationC