为什么要使用意图来创建活动?

时间:2013-09-18 22:27:03

标签: android android-intent

民间,

这是一个新手问题。我已经阅读了一些关于意图的文章,但是我对于一个意图背后的主要想法在开始一项活动时有点困惑。如果我知道我必须创建并展示一个活动,为什么我不能做如下这么简单的事情?

 MyActivity a = new MyActivity();
 a.show();

提前感谢您的帮助。

的问候,
彼得

4 个答案:

答案 0 :(得分:4)

活动具有生命周期,由框架管理。我想说为了获得额外的生命周期,Android推出了一套启动活动的规则(startActivity)。要添加,Intent不仅要启动您的活动。意图可用于启动其他第三方或内部视图/服务/目标。这可能是他们引入意图的另一个原因。只是我的两分钱。

答案 1 :(得分:2)

intent是要执行的操作的抽象描述。它可以与startActivity一起用于启动Activity,broadcastIntent用于将其发送到任何感兴趣的BroadcastReceiver组件,startService(Intent)或bindService(Intent,ServiceConnection,int)用于与后台服务进行通信。

Intent提供了一种工具,用于在不同应用程序中的代码之间执行延迟运行时绑定。它最重要的用途是发起活动,它可以被认为是活动之间的粘合剂。它基本上是一个被动数据结构,包含要执行的动作的抽象描述。

点击here了解详情。

答案 2 :(得分:2)

意图在应用中的活动和应用之间进行通信。

你的例子:

MyActivity a = new MyActivity();
a.show();

假设Android只是对象,因此实例化一个Activity并以某种方式显示它将使它出现。但事实并非如此; Android系统做得更多。您的应用中的活动是“浮动的”,就像在Android框架中一样。大多数使活动勾选的内容对您来说是不可见的。特别是,特定于Android的线程模型以及系统与Android组件(如“活动”)通信的方式是不可见的。

我不会涉及大部分内容,但Intents启动Activity的另一个好处是,Activity可以将自己添加为想要执行特定任务的Intents的候选者。假设我有一个编辑图像的应用程序。通过过滤具有我可以处理的MIME类型的动作ACTION_EDIT的Intent,我可以轻松地让自己被发现。这正是Android实现当您尝试对文件执行操作时显示的应用程序列表的方式。

答案 3 :(得分:1)

基本单词Intent是您对Android设备的耳朵问候。您的活动可以通过Intent与Android通话,并聆听手机上的“任何更改”。

就像坐在大房子的入口旁边的“祖母”,听所有的讲话,闲话,并且通知你。