Thinking & Sharing

Watch Exchange Imagine Negate Innovate Express
Android 笔记 - 基础之Intent

最近事情太多,没有继续学习Android编程,不过前天从机锋下了个植物大战僵尸,发现老有广告弹出,想知道原理。于是

反编译androidManifext.xml 文件,发现receiver之类的声明,于是继续研究。 明白了一下原理。

 

可以在代码文件中声明一个receiver,也可以在manifest中声明一个,前者中的receiver只有在该activity launch起来以后才会监听其所感兴趣的文件,而如果在androidManifext.xml中声明的话,就不受限制,随时可以监听感兴趣的事件。

 

receiver有个好处就是不需要让程序一直运行在后台,只要声明的监听的intent-filter,符合条件系统会自动调用相应的函数。


然后回想Hellowworld中的 androidManifext.xml的activity也有intent-filter,似乎明白了些东西。Intent是意图,可以被别的程序调用。如果满足条件,系统就会自动找到该activity来执行。intent可以显式或者隐式,显式就在直接指定包和类名,隐式就需要使用过滤条件来匹配。

intent包含对应的action信息。系统有些标准的action。可以参考andorid 开发网站reference/android/content/Intent.html。系统会根据此来判断哪些activity可以执行该action,然后如果出现多个,就会有个下拉框选择。以此来实现activity的松耦合。原来的activity 不需要知道用哪个activity会执行。 

 

当然intent还可以实现不同的程序或者同个程序不同的activity的数据交换。 


Intent作用的表现形式为:
      1、通过Context.startActivity() orActivity.startActivityForResult() 启动一个Activity;
      2、通过 Context.startService() 启动一个服务,或者通过Context.bindService() 和后台服务交互;
      3、通过广播方法(比如 Context.sendBroadcast(),Context.sendOrderedBroadcast(), Context.sendStickyBroadcast()) 发给broadcast receivers。 

 

 

 

posted on 2012-08-26 10:34  weinie  阅读(172)  评论(0编辑  收藏  举报