民间,
这是一个新手问题。我已经阅读了一些关于意图的文章,但是我对于一个意图背后的主要想法在开始一项活动时有点困惑。如果我知道我必须创建并展示一个活动,为什么我不能做如下这么简单的事情?
MyActivity a = new MyActivity();
a.show();
提前感谢您的帮助。
的问候,
彼得
答案 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通话,并聆听手机上的“任何更改”。
就像坐在大房子的入口旁边的“祖母”,听所有的讲话,闲话,并且通知你。