Nik*_*tel 336 android android-intent
Chi*_*rag 478
的意图是一个"意图"要执行的动作; 换一种说法,
您可以使用消息传递对象从另一个应用程序组件请求操作
一个意图基本上是一个消息,说你做了或想要发生的事情.根据意图,应用程序或操作系统可能正在监听它并将作出相应的反应.可以把它想象成一群朋友,你告诉你的朋友约翰做某事,或者告诉你能做X的朋友("意图过滤器")做X.其他人会忽略这封电子邮件,但约翰(或能做X的朋友)会对此做出反应.
要收听广播意图(如电话铃声或收到短信),您需要实现广播接收器,该接收器将传递意图.要声明您可以处理另一个应用程序意图,如"拍照",您在应用程序的清单文件中声明了一个意图过滤器.
如果你想发动做某事的意图,比如弹出拨号器,你会发出一个意图,表示你愿意.
mr.*_*fox 161
的意图基本上是在之间传递的消息的部件(如活动,服务,广播接收器,和内容提供商).因此,它几乎等同于传递给API调用的参数.API调用和通过意图调用组件之间的根本区别是:
当然,可以通过使用所谓的显式意图使Intent完全像API调用一样工作,这将在后面解释.但通常情况下,隐含意图是要走的路,这就是这里所解释的.
想要调用另一个组件的一个组件必须只表达其完成工作的意图.Android平台调用任何其他存在并声称可以通过intent-filters完成此类工作的组件来完成工作.这意味着,两个组件都不知道彼此的存在,但仍然可以一起工作以为最终用户提供所需的结果.
组件之间的这种不可见的连接是通过意图,意图过滤器和Android平台的组合实现的.
这导致了巨大的可能性,如:
以下是Android文档中有关Intents的其他技术详细信息.
意图是要执行的操作的抽象描述.它可以与startActivity一起使用来启动Activity,broadcastIntent可以将它发送到任何感兴趣的BroadcastReceiver组件,startService(Intent)或bindService(Intent,ServiceConnection,int)可以与后台服务进行通信.
Intent提供了一种工具,用于在不同应用程序中的代码之间执行延迟运行时绑定.它最重要的用途是发起活动,它可以被认为是活动之间的粘合剂.它基本上是一个被动数据结构,包含要执行的动作的抽象描述.意图中的主要信息是:
- action 要执行的一般操作,例如ACTION_VIEW,ACTION_EDIT,ACTION_MAIN等.
- data 要操作的数据,例如联系人数据库中的人员记录,表示为Uri.
Var*_*tia 48
意图是告诉Android你想做什么的一种方式.换句话说,你描述了你的意图.意图可用于向Android系统发出已发生特定事件的信号.Android中的其他组件可以通过intent过滤器注册到此事件.
以下是两种意图
用于调用特定组件.当您知道要启动哪个组件时,并且您不希望让用户可以自由控制要使用的组件.例如,您有一个包含2个活动的应用程序.活动A和活动B.您想要从活动A启动活动B.在这种情况下,您定义一个显式的意图目标activityB,然后使用它直接调用它.
当您知道自己想要做什么时使用,但是您不知道应该启动哪个组件.或者,如果您希望为用户提供在要使用的组件列表之间进行选择的选项.如果将这些Intent发送到Android系统,它将搜索为特定操作和数据类型注册的所有组件.如果只找到一个组件,Android将直接启动该组件.例如,您有一个使用相机拍照的应用程序.您的应用程序的一个功能是,您可以让用户发送他拍摄的照片.您不知道用户可以发送照片的应用程序类型,并且您还希望为用户提供选择如果他有多个外部应用程序的选项.在这种情况下,您不会使用明确的意图.
无论它包含什么,明确的意图总是传递给它的目标; 不咨询过滤器.但只有当组件可以通过组件的一个过滤器时,才会将隐式意图传递给组件
如果将Intents发送到Android系统,它将确定此Intent的合适应用程序.如果已为此类Intents注册了多个组件,则Android会为用户提供打开其中一个组件的选择.
此确定基于IntentFilters.IntentFilters指定活动,服务或广播接收器可以响应的Intent类型.Intent Filter声明组件的功能.它指定了响应或服务可以执行的操作以及Receiver可以处理的广播类型.它允许相应的组件接收声明类型的Intents.IntentFilters通常通过AndroidManifest.xml文件定义.对于BroadcastReceiver,也可以在编码中定义它们.IntentFilters由其类别,操作和数据过滤器定义.它还可以包含其他元数据.
如果组件未定义Intent过滤器,则只能通过显式Intents调用它.
以下是定义过滤器的两种方法
如果在清单中定义了intent过滤器,则不必运行应用程序来响应其过滤器中定义的意图.Android会在安装应用程序时注册过滤器.
如果您希望广播接收器仅在您的应用程序运行时接收该意图.然后,您应该在运行时定义您的intent过滤器(以编程方式).请记住,这仅适用于广播接收器.
Par*_*ani 12
在编写单个活动之后,需要转换到另一个活动以执行另一个任务,无论是否有来自第一个活动的信息.
Android平台允许通过Intent Interface进行转换.
单词取自这里:使用Intent Demo,我建议你通过这个例子,因为他们也提供了一个代码文件.所以你可以使用它并轻松理解相同的内容.
根据他们的文件:
Intent是一个在不同组件之间提供运行时绑定的对象(例如两个活动).意图表示应用程序"有意做某事".您可以将意图用于各种任务,但大多数情况下它们都用于启动另一项活动.
以下是与示例的链接:http: //developer.android.com/training/basics/firstapp/starting-activity.html#BuildIntent
正如文档所述,为了开始一项活动(您还需要了解哪些活动),请使用如下所述的意图
/** Called when the user clicks the Send button */
public void sendMessage(View view) {
Intent intent = new Intent(this, DisplayMessageActivity.class);
EditText editText = (EditText) findViewById(R.id.edit_message);
String message = editText.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
Android Intent允许您从一个Android活动导航到另一个.通过示例,本教程还讨论了各种类型的Android意图.
Android Intent可以定义为一个简单的消息对象,用于从1个活动到另一个活动进行通信.
意图定义应用程序的意图.它们还用于在活动之间传输数据.
Android Intent可用于执行以下3个任务:
意图可大致分为2类.此类别没有关键字,只是对Android意图的使用方式的广泛分类.
明确的Android意图
显式Android Intent是您明确定义需要由Android系统调用的组件的Intent.
Intent MoveToNext = new Intent (getApplicationContext(), SecondActivity.class);
Run Code Online (Sandbox Code Playgroud)
隐含的Android意图
隐含的Android Intents是一种意图,您可以定义要执行的操作,而不是定义确切的组件.处理此操作的决定权留给操作系统.操作系统决定哪个组件最适合运行隐式意图.让我们看一个例子:
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请访问以下内容
http://developer.android.com/reference/android/content/Intent.html
意图是要执行的操作的抽象描述.它可以与startActivity一起使用来启动Activity,broadcastIntent可以将它发送到任何感兴趣的BroadcastReceiver组件,startService(Intent)或bindService(Intent,ServiceConnection,int)可以与后台服务进行通信.
有关更多详细信息,请参阅以
1). http://developer.android.com/reference/android/content/Intent.html
2) http://developer.android.com/guide/topics/intents/intents-filters.html
3).http://www.vogella.de/articles/AndroidIntent/article.html
还有更多文章可供选择.
什么是意图?
它是传递给组件的一种消息或信息.它用于启动活动,显示网页,发送短信,发送电子邮件等.
android中有两种类型的意图:
隐含意图
明确意图
隐式意图用于调用系统组件
例
Intent i = newIntent(android.content.Intent.ACTION_VIEW,Uri.parse(“http://www.amazon.com”));
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
显式意图用于调用活动类.
例
Intent intent = newIntent(this,SecondActivity.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
你可以阅读更多
http://www.vogella.com/tutorials/AndroidIntent/article.html#intents_overview http://developer.android.com/reference/android/content/Intent.html
| 归档时间: |
|
| 查看次数: |
214432 次 |
| 最近记录: |