>intent对象的描述
intent的理解
intent用来表示自己的意图:需要启动哪个Activity。两个Activity可以吧需要交换的数据封装成Bundle对象,然后使用Intent来携带Bundle对象,这样就实现了两个Activity对象之间的数据交换组件的启动方法
- Activity
- startActivity(intent)
- startActivity(intent,int)
- Service
- StartService(Intent)
- bindService(inten,seviceConnection,int)
- BroadcastReceiver
- sendBroadcast(intent)
- sendBroadcast(intetn,String)
- sendOrderedBroadcast(intent,String,BraodcastReceiver,Handler,int,String,Bundle)
- sendOrderedBroadcast(intet,String)
- sendStickyBroadcast(intent)
- sendStickyOrderedBroadcast(intent,resultReceiver,scheduler,initialCode,String,Bundle)
- Activity
- 包含的属性
Component,Action,Category,Data,Type,Extra,Flag
>intent的属性及intent-filter配置
- Component属性
- intent设定component属性的方法:
setClass(Context packageContext,Class
- intent设定component属性的方法:
Intent intetn = new Intent();
intetn.setAction(MainActivity.CRAZYIT_ACTION);
startActivity(intent)
Category属性的配置
可以通过add
是一个字符串,为Action增加额外的附加信息。可以指定多个Category要求intent-filter的配置,这是被启动的Activity的配置文件,配置的事目标activity的intent属性,这个是activity的唯一标识。
开始有点理解这些东西了,可能就是一个用来交互的实体类,对于每一个对象的唯一身份标识,只需要创建一个这个实体,就能通过相同的方式启动类,并且通过Bundle传递相应的参数。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
指定Action、Category调用系统的Activity
- ACTION_MAIN
- ACTION_VIEW
- ACTON_ATTACH_DATA
- ACTION_ATTACH_DATA
- ACTION_EDIT。。。。。。。
- CATAGORY_DEFAULT
- CATEGORY_BROWSABLE
- CATEGORY_TAB
在intent-filter中,设置用户访问手机的权限
>PendingIntent介绍
- 有条件的intent
pendingIntent是一种特殊的Intent。主要的区别在于Intent的执行立刻的,而pendingIntent的执行不是立刻的。pendingIntent执行的操作实质上是参数传进来的Intent的操作,但是使用pendingIntent的目的在于它所包含的Intent的操作的执行是需要满足某些条件的。 - 调用作用域
PendingIntent可以看作是对Intent的包装。PendingIntent主要持有的信息是它所包装的Intent和当前Application的Context。正由于PendingIntent中保存有当前Application的Context,使它赋予其他程序一种执行的Intent的能力,就算在执行时当前Application已经不存在了,也能通过存在PendingIntent里的Context照样执行Intent