Acitivity之Intent调用方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acitivity之Intent调用方法相关的知识,希望对你有一定的参考价值。

用Intent可以实现两个页面(Activity)之间的切换。当然,用Intent还可以实现启动一个Service,和发起一个广播Broadcasts。

①名词解释:
汉语意思是:意图,目的; 意思,含义。即当一个Activity,Service或Broadcasts要表达一种行动的意图时,用Intent做一个他们之间通信的中介。Intent是一种运行时绑定(runtime binding)机制。通过Intent,你的程序可以向android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来响应。

技术分享

 

 ②简单实现Activity之间的切换。

/*MainActivity.java*/

 button1.setOnClickListener(new OnClickListener() {            
              @Override
              public void onClick(View v) {
                  //创建一个Intent对象
                  Intent intent = new Intent();
                  intent.setClass(MainActivity.this,OtherActivity.class); //单机按钮,从当前所在的MainActivity跳转到OtherActivity             
                  startActivity(intent);       //启动不带传值的Intent对象

这样跳转存在的问题:得益于Intent是运行时绑定(runtime binding)机制,两个Acitivity之间的跳转是不“绑定”的。这样存在一定的好处,但是在进入另一个页面(Activity)之后,需要按后退键返回上一个页面。这就是说:如果整个应用使用了很多Intent这样的跳转机制,要返回首页是很麻烦的。

③”Intent“比你想象的更强大

Intent有以下几个属性:

动作(Action),数据(Data),分类(Category),类型(Type),组件(Compent)以及扩展信(Extra)。其中最常用的是Action属性和Data属性。

举个栗子

btn01.setOnClickListener(new OnClickListener() {  
            @Override 
            public void onClick(View v) {     
                Intent intent = new Intent();                 
                intent.setAction(Intent.ACTION_GET_CONTENT);// 设置Intent Action属性                  
                intent.setType("vnd.android.cursor.item/phone");// 设置Intent Type 属性   
                                                                //主要是获取通讯录的内容  
                startActivity(intent); // 启动Activity  
            }  
        });          

以上方法实现了:点击按钮btn01后打开手机自带通讯录,选择联系人的界面。

关于Intent用法的其他详细解释参看博文:http://liangruijun.blog.51cto.com/3061169/634411

对Android中vnd.android.cursor.item/的解释参看:http://blog.sina.com.cn/s/blog_746189210102vzvr.html

 

 

以上是关于Acitivity之Intent调用方法的主要内容,如果未能解决你的问题,请参考以下文章

Android 关于Acitivity 的setFlag以及launchmode的总结

android开发问题:如何在当前Acitivity中用代码获取上一个Activity名称?

Android问题集锦之八:调用其他程序中的activity和Permission Denial: starting Intent 错误解决办法

使用BroadcastReciever传递Intent.EXTRAS

如何从片段 KOTLIN 中调用意图 [重复]

从片段捕获图像时从不调用onActivityResult [重复]