调用startActivity()时如何理解intent?

时间:2013-10-23 00:57:47

标签: android

intent是要执行的操作的抽象描述.--引自android文档。这是一个做“行动”的“意图” - 引自Stackoverflow中的最佳答案。

给出如下代码

Intent intent = new Intent(this, DisplayMessageActivity.class);
startActivity(intent);

我不知道这个“意图”想要采取什么行动。直到我看到startActivity(),我才明白它想要启动Activity,而不是杀死它(如果可以的话)。为什么不只是startActivity(this,DisplayMessageActivity.class)?

明确地让我在没有动作的情况下创建一个Intent,文档和几乎所有的解释告诉我“意图”意图做某事,真的让我很困惑。请帮帮我。


我认为这里困扰我的原因是为什么在我放置一个动作和动作所需的所有信息之后不使用像fulfillMyIntent()这样的常用函数。当然,我可以接受我们以抽象的方式使用任何类型。但通常我使用一个完全抽象(空)或完全混凝土的对象,而不是半混凝土(如没有动作的意图)。 Possiblly我应该试着让半混凝土物体感觉更舒服。

1 个答案:

答案 0 :(得分:1)

  

我不知道这个“意图”想要采取什么行动。

同样来自the documentation

  

它可以与startActivity一起使用来启动一个Activity,

所以“这个intent想要”开始Activity

  

为什么不只是startActivity(this,DisplayMessageActivity.class)?

你几乎可以这样做但看起来更像是

startActivity(new Intent(this, DisplayMessageActivity.class)) 

Intent仍然是一个有constructors的类,其中一个在使用时需要调用。这样做很好,但你可以按照你在问题中显示的第一种方式来做到这一点,这样你就可以在调用{{1}方法之前添加extrasdata等... }}

  

明确让我在没有动作的情况下创建一个意图

那么startActivity()的目的是什么?如果你不打算用它做一些动作,你为什么要创建一个呢?然后创建一个变量。如果我要创建“意图”去商店,但我实际上并不打算去商店那么为什么我会说我打算在第一时间?我会说我要吃一个苹果而不去商店。这可能看起来有点抽象,但如果你要对它做任何事情,我不确定你想要Intent