Intent简单介绍

  Intent目前翻译为意图,所谓意图就是想做什么。是Android系统组件之间的通信的桥梁。其描述的基本内容可以分为:conponentName(组件名称)、Action(动作名称)、Data(数据)、Category(类别)、Extra(附加数据)和Log(标志位)六个部分。

创新互联建站坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站设计、网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的扶绥网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

  1 、指定conponentName

     指定组件名称的方式又叫显示调用,明确要调用的组件,直接调用组件名,调用方式如下

Intent goto = new Intent();
goto.setClass(OneActivity.this,Second.class);
OnActivity.this.startActivity(goto);

  当然两个Activity必须在AndroidManifest.xml注册。

  2 、指定Action

     

    没有明确指出组件名,隐式调用,需要和Data,Catagory,Extra配合使用。这个隐式调用又分为静态调用和动态调用。

   (一)静态隐式调用

      这种调用在方式上面体现为必须将要调用的组件的IntentFilter在AndroidManifest.xml里面注册,并且至少需要一个标签,没有则任何Intent都不匹配。

 下面是Activity中的写法,目的是Activity传递数据给BroadcastReceiver

Intent sendIntent = new Intent("intent_1");//动作名称为action_1
sendIntent.putExtra("sendmsg","你好");//存储数据到Intent中,通过广播携带到目的组件中
MainActivity.this.sendBroadcast(sendIntent);//发送广播

  广播内容

public class MyBroadCastReceiver extends BroadcastReceiver{

       @Override
       public void onReceive(Context context,Intent intent){
           Toast.makeText(context,intent.getExtra("sendmsg"),
           Toast.LENGTH_LONG).show();
       }
}

 注册接收者,必须要,不然过滤器无法找到


    
       
    

同样的道理,在Activity和Activity之间通讯的时候,不过Activity在注册的时候要加一个标签


   
   

  

     (二)动态隐式调用

      也就是不在注册文件里面注册intentFilter而是需要调用的时候再注册。如下

IntentFilter myfilter = new IntentFilter();
MyBroadCast mybroad = new MyBroadCast();
myfilter.addAction("action_3");
registerReceiver(mybroad,myfilter); //动态注册
Intent intent = new Intent();
intent.putExtra("msg","哈哈");
intent.setAction("action_3");
Main.this.sendBroadcast(intent);

   3、使用系统自带的ActionName

由于实在太多这里就不详解了,用法大致为:

Intent intent = new Intent(Intent.ACTION_DIAL);//显示电话拨号界面
this.startActivity(intent);
 //打开浏览器并且指定网页
 Uri uri = Uri.parse("
 Intent intent = new Intent(Intent.ACTION_VIEW,uri);
 this.startActivity(intent);

  以下是所有系统自带ActionName:

android.intent.action.ALL_APPS
android.intent.action.ANSWER
android.intent.action.ATTACH_DATA
android.intent.action.BUG_REPORT
android.intent.action.CALL
android.intent.action.CALL_BUTTON
android.intent.action.CHOOSER
android.intent.action.CREATE_LIVE_FOLDER
android.intent.action.CREATE_SHORTCUT
android.intent.action.DELETE
android.intent.action.DIAL
android.intent.action.EDIT
android.intent.action.GET_CONTENT
android.intent.action.INSERT
android.intent.action.INSERT_OR_EDIT
android.intent.action.MAIN
android.intent.action.MEDIA_SEARCH
android.intent.action.PICK
android.intent.action.PICK_ACTIVITY
android.intent.action.RINGTONE_PICKER
android.intent.action.RUN
android.intent.action.SEARCH
android.intent.action.SEARCH_LONG_PRESS
android.intent.action.SEND
android.intent.action.SENDTO
android.intent.action.SET_WALLPAPER
android.intent.action.SYNC
android.intent.action.SYSTEM_TUTORIAL
android.intent.action.VIEW
android.intent.action.VOICE_COMMAND
android.intent.action.WEB_SEARCH
android.net.wifi.PICK_WIFI_NETWORK
android.settings.AIRPLANE_MODE_SETTINGS
android.settings.APN_SETTINGS
android.settings.APPLICATION_DEVELOPMENT_SETTINGS
android.settings.APPLICATION_SETTINGS
android.settings.BLUETOOTH_SETTINGS
android.settings.DATA_ROAMING_SETTINGS
android.settings.DATE_SETTINGS
android.settings.DISPLAY_SETTINGS
android.settings.INPUT_METHOD_SETTINGS
android.settings.INTERNAL_STORAGE_SETTINGS
android.settings.LOCALE_SETTINGS
android.settings.LOCATION_SOURCE_SETTINGS
android.settings.MANAGE_APPLICATIONS_SETTINGS
android.settings.MEMORY_CARD_SETTINGS
android.settings.NETWORK_OPERATOR_SETTINGS
android.settings.QUICK_LAUNCH_SETTINGS
android.settings.SECURITY_SETTINGS
android.settings.SETTINGS
android.settings.SOUND_SETTINGS
android.settings.SYNC_SETTINGS
android.settings.USER_DICTIONARY_SETTINGS
android.settings.WIFI_IP_SETTINGS
android.settings.WIFI_SETTINGS
android.settings.WIRELESS_SETTINGS

分享标题:Intent简单介绍
文章网址:http://ybzwz.com/article/gejhgd.html