2014-03-01 38 views
2

学习如何制作android应用程序,我做了这件事。啧啧的总结是在这里:“getIntent()” - 它是如何工作的

http://sketchytech.blogspot.com/2012/10/android-simple-user-interface-activity.html

我想弄清楚的意图是如何工作的。在tut中创建一个名为intent的Intent,并在DisplayMessageActivity.java中通过调用“getIntent()”创建一个名为intent的Intent。

“getIntent()”函数(或方法(我最熟悉C))是否返回最近创建的意图?一次只能有一个意图吗?

任何反应提前Thinks!

回答

1

所有活动由要么startActivity(Intent)startActivityForResult(Intent, int)方法开始。意图告诉Activity需要知道的一切,以便在启动时显示正确的信息。 getIntent()在Activity中调用时,会为您提供对用于启动此活动的Intent的引用。

+0

你是否总是需要一种意图来开始一项活动?或者将startActivity接受其他类型的参数? – Williamz

+0

你总是需要一个意图。 Intents可以包含各种各样的信息,比如Activity要求启动这个信息,Extras是基本变量和Parcelable对象,用于告诉新的Activity它需要使用哪些数据,还可以指定Actions为你想要的要做的新活动(即浏览内容,选择价值等)。无论如何,一个Activity只能用一个Intent来启动,所以getIntent()不应该返回null。 – SDJMcHattie

+0

谢谢!这有很大帮助 – Williamz

0

getIntent()方法获取调用此activity.there可不止一个意图intent但你只有一个意向在同一时间(因为只有一个活动是可见一次)

0

有可见你将使用两种主要的意图形式。

显式意图指定了一个组件(通过 setComponent(ComponentName)或setClass(Context,Class)),其中 提供了要运行的确切类。通常这些将不包括任何其他信息,仅仅是作为用户与 应用程序交互时应用程序启动其所具有的各种内部活动的方式。隐含意图没有指定一个组件;相反,它们必须包含足够的信息以供系统确定哪些可用组件最适合为该意图运行哪些组件。

Intent是一个数据类,它保存即将启动的Activity的信息。活动是当前显示在屏幕上的视图的管理者或控制者。

系统中的活动作为活动堆栈进行管理。当一个新的 活动开始时,它被放置在堆栈的顶部,并变为 运行活动 - 之前的活动始终保持低于堆栈中的 ,并且不会再次到达前台,直到新的 活动退出。

enter image description here

+0

意图不是活动 – SDJMcHattie

+0

要快速书写,我犯了错误的文字。 – RMachnik

0

Activity通常通过Intent创建。假设你在你的第一个活动:

Intent intent = new Intent(MyFancyActivity.class, Intent.ACTION_VIEW); 
startActivity(intent); 

这将启动一个新的MyFancyActivity实例。从MyFancyActivity,您可以检索导致该实例创建的意图。也就是说,getIntent()方法:

// this is the intent created in your first activity 
Intent i = getIntent(); 
相关问题