Intent这个东西
Intent学名:意图,主要用于android应用的各个组件之间的通讯。它包含发生请求的组件中的一组信息送给被请求的对象。你可以想象它是快递员,它携带了各中“物件“给客户。
要寄快递,我们得先打电话。拿起你的Android手机,按下拨号键盘的时候你的android手机做了些什么?“意图“有用吗?
按下按键这个动作后
public void dialButtonPressed() { if (isDigitsEmpty()) { // No number entered. handleDialButtonClickWithEmptyDigits(); } else { final String number = mDigits.getText().toString(); // "persist.radio.otaspdial" is a temporary hack needed for one carrier's automated // test equipment. // TODO: clean it up. if (number != null && !TextUtils.isEmpty(mProhibitedPhoneNumberRegexp) && number.matches(mProhibitedPhoneNumberRegexp) && (SystemProperties.getInt("persist.radio.otaspdial", 0) != 1)) { Log.i(TAG, "The phone number is prohibited explicitly by a rule."); if (getActivity() != null) { DialogFragment dialogFragment = ErrorDialogFragment.newInstance( R.string.dialog_phone_call_prohibited_message); dialogFragment.show(getFragmentManager(), "phone_prohibited_dialog"); } // Clear the digits just in case. mDigits.getText().clear(); } else { // 省略前面100字,看这里已经叫到“快递员“Intent了,快递员拿着电话号码“number“ 去送给DialtactsActivity.EXTRA_CALL_ORIGIN这个家伙 final Intent intent = ContactsUtils.getCallIntent(number, /*s1*/ (getActivity() instanceof DialtactsActivity ? ((DialtactsActivity)getActivity()).getCallOrigin() : null)); startActivity(intent); mClearDigitsOnStop = true; getActivity().finish(); } } } public static Intent getCallIntent(String number, String callOrigin) {/*s2*/ return getCallIntent(getCallUri(number), callOrigin); } public static Intent getCallIntent(Uri uri, String callOrigin) {/*s3*/ final Intent intent = new Intent(Intent.ACTION_CALL_PRIVILEGED, uri); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (callOrigin != null) { intent.putExtra(DialtactsActivity.EXTRA_CALL_ORIGIN, callOrigin); } return intent; }
完成了一次送递!
哦!Intent原来就是这样用。温故而之新,这也是启动Activity的例子。其实Intent不但可以启动Activity,他还可以启动Service 、Broadcast 这些组建。
小结一下:
intnet 勾搭了 activity 方式:startActivity() ,startActivityForResult()
intnet 勾搭了 service 方式:startService() ,bindService()
intnet 勾搭了 broadcast 方式: sendBroadcast(), sendOrderedBroadcast(), or sendStickyBroadcast()
相关推荐
* Category(类别):这个选项指定了将要执行的这个 action 的其他一些额外的信息,例如 LAUNCHER_CATEGORY 表示 Intent 的接受者应该在 Launcher 中作为顶级应用出现。 * Type(数据类型):显式指定 Intent 的数据...
这段代码创建了一个Intent,指定了目标Activity(DetailActivity),并传递了一个键值对作为额外数据。`startActivity()`会将当前Activity的上下文环境传入,并启动新的Activity。 Intent也可以用来启动Service,这...
源码中,Intent的解析过程主要在`PackageManagerService`类中完成,这个类是系统服务,负责管理所有应用的包信息。`resolveActivity()`和`resolveService()`方法分别用于查找能处理Intent的Activity和Service。 ...
Intent应该算是Android中特有的东西。你可以在Intent中指定程序要执行的动作(比如:view,edit,dial),以及程序执行到该动作时所需要的资料。都指定好后,只要调用startActivity(),Android系统会自动寻找最符合你...
Android的静默安装似乎是一个很有趣很诱人的东西,但是,用普通做法,如果手机没有root权限的话,似乎很难实现静默安装,因为Android并不提供显示的Intent调用,一般是通过以下方式安装apk: Intent intent = new ...
Intent是Android中的另一个核心概念,用于启动或通信`Activity`。Intent有两种类型:显式Intent和隐式Intent。显式Intent通过指定`Activity`的完整类名来启动特定的`Activity`;而隐式Intent则通过设置Action、Data...
家庭自动化使用Amazon Echo,Z-wave设备,Raspberry Pis,Kodi以及我周围放置的其他任何东西进行家庭自动化的意图框架。Alexa设置如果您还没有上的帐户,则需要创建一个帐户。 转到 ,然后单击按钮以添加新技能。 ...
试图让 phonegap 应用程序接收 android 发送意图脚步创建默认的cordova应用程序使用cordova plugin add添加插件(需要吗?) 将插件添加到 config.xml 将 webintent.js 添加到 www/js/ 将 webintent.js 的引用添加到...
但萌新突出一个莽字,不知道的东西就冲塔搞他。。首先我们萌新知道的启动activity分为两种,显式调用和隐式调用。原则上一个Intent不能即是显式调用又是隐式调用,两者真共存的话以显式调用为主。 显式调用: 需要...
Service可以发送一个Broadcast,而Activity注册一个BroadcastReceiver来接收这个广播并获取数据。 ```java // 在Service中 Intent intent = new Intent("com.example.MY_ACTION"); intent.putExtra("key", "data");...
在Android开发领域,"android小...以上是"android小东西"所涵盖的一些关键知识点,对于一个Android开发者来说,熟练掌握这些基础内容是构建高质量应用的基石。在实践中不断学习和积累,将有助于提升开发技能和效率。
以下是对"Android中有用的东西"这一主题的详细解释。 1. **Activity与Intent**: Activity是Android应用的基本组件,它代表了用户界面的一个屏幕。Intent则是一种消息传递机制,用于启动Activity或Service,进行数据...
开发者可以通过实现这个接口来添加自己的搜索服务,使得应用内容可以被全局搜索框检索到。Android 13中,这一服务的注册和配置过程有所改进,提高了效率和灵活性。 **一、配置清单文件** 1. **添加权限**:在`...
Intent intent = new Intent(); intent.setData(Uri.parse("weixin://")); try { startActivity(intent); } catch (ActivityNotFoundException e) { Toast.makeText(context, "未找到微信应用", Toast.LENGTH_...
在Android系统中,内容搜索通常基于ContentProvider进行,这是一个接口,用于应用程序间的数据共享。开发者需要创建一个ContentProvider来暴露应用的数据,然后定义一个搜索界面供用户输入查询条件。Android的...
Android 进一步推进了 " 随时随地为每个人提供信息 " 这一企 业 目标的实现。 � Open Handset Alliance 汇集了多家业界巨头。运营商如: China Mobile 、 NTT DoCoMo 、 Vodafone 、 T-M obile 等;设备制造商如 ...
1、在工程中导入SDK文件DataCollection.jar。 2、在AndroidManifest.xml中加入下面的代码来获取扫描权限。 ...3、在Activity类(如MainActivity)的声明中加入BarcodeListener和TriggerListener,以便进行扫描键...
Float-Bar ...关于辅助功能这个东西网上的说明少的可怜,只能通过看Android官方系统新特性获得,这里说明下如何用系统的辅助功能来实现模拟操作。 1.注册 service必须按照规定注册 这里写上了权限
"已测试,安装即用"这部分说明了这个应用已经经过了开发者充分的测试,确保在用户下载安装后能够顺利运行,无需额外的配置步骤,体现了程序员的专业性和对用户体验的关注。 从“标签”来看,“女朋友的礼物”这一...
描述中提到"Achartengine文档,demo,开发包有这个东西,画图什么的方便很多,快很多",这表明AChartEngine不仅提供了完整的文档来指导开发者如何使用,还包含了示例代码(即demo)以便用户了解和学习。通过这个库,...