Android移动开发基础教程(慕课版)(第2版)课件 第4单元 Intent和BroadCastReceiver.pptx
第4单元Intent和BroadCastReceiverAndroid移动开发基础教程(慕课版)(第2版)
4.1Intent和intent-filter配置【知识描述】Intent可以启动不同的组件,基本的使用场景有以下3种。(1)将Intent对象作为参数传递给startActivity()或startActivityForResult(),启动一个Activity。(2)将Intent对象作为参数传递给startService()或bindService(),启动一个Service。(3)将Intent对象作为参数传递给sendBroadcast()、sendOrderedBroadcast()或sendStickyBroadcast(),发送一个广播。
4.1Intent和intent-filter配置Intent可以分成两种类型,这两种类型分别是显式Intent和隐式Intent。在定义Intent对象时,根据类名明确指定所要启动的组件。这种类型通常用于应用程序的内部在定义Intent对象时,没有明确指定所要启动的组件,只是设置了一些过滤条件。Android系统会根据特定的匹配过滤条件,找到并启动相应的组件显式Intent隐式Intent
4.1Intent和intent-filter配置01OPTIONaction属性action属性是一个字符串,在定义隐式Intent时,如果通过setAction()方法指定了action,系统会查找设备中应用的AndroidManifest.xml文件,如果某个组件在intent-filter属性里配置了符合过滤条件的action,则匹配成功,系统会启动该组件。
4.1Intent和intent-filter配置任务4.1通过action启动Activity本任务action跳转的运行结果如图4.1所示,在用户单击MainActivity中的按钮之后,系统会在各个应用的AndroidManifest.xml文件中查找action属性。匹配到ShowActivity配置的action属性符合过滤条件,则启动ShowActivity。图4.1action跳转的运行结果
4.1Intent和intent-filter配置【任务代码】MainActivity代码:publicclassMainActivityextendsActivity{protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.act_main);initWidget();}privatevoidinitWidget(){Buttonbtn=(Button)findViewById(R.id.btn_click);//定义按钮对象btn.setOnClickListener(newOnClickListener(){publicvoidonClick(Viewv){Intentintent=newIntent();//定义一个Intent对象//没有明确指定需要启动的Activity,只设置了actionintent.setAction(com.demo.action.show);startActivity(intent);}});}}
4.1Intent和intent-filter配置ShowActivity代码:publicclassShowActivityextendsActivity{protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.act_show);Intentintent=getIntent();//获取Intent对象Stringaction=intent.getAction();//获取action内容TextViewtxtV