Android学习记录五(活动、服务、内容提供者、广播接收者)

一、活动

      1、Activity是放在一个Back堆栈中,在弹出放入时,进行onCreate、onStart等方法的回调。

      2、应用程序的Activity要让其他应用程序调用的话,则需要在Activity中定义<action><category><data>

      3、打开Activity,返回结果:

            

          4、Fragment     

                   Fragment作为Activity界面的一部分组成出现。

              可以在一个Activity中同时出现多个Fragment,并且,一个Fragment亦可在多个Activity中使用。

              在Activity运行过程中,可以添加、移除或者替换Fragment(add()、remove()、replace())

               Fragment可以响应自己的输入事件,并且有自己的生命周期,当然,它们的生命周期直接被其所属

               的宿主activity的生命周期     影响。

                  

         5、Loader

        从android3.0开始,Loader可以异步的加载数据至Activity或Fragment。

         6、Task  和Back Stack

         Task可以理解为一些Activity的集合,一个应用程序启动时,则启动一个任务,  Back Stack就是一个

         存放Activity的堆栈,后进先出,如果按home键,则堆栈中的所有Activity都stop。

 

二、服务

       service提供后台的服务,甚至可以执行一些进程间的交互。比如service可以处理网络交互,放音乐,操作文件I/O等。

     1、一种service叫做Start,可以通过startService()来启动,一旦启动,一个服务可以在后台无线循环,即使启动它的组件已经关闭。

            一般来说,service启动一个简单的操作,并不返回结果给调用者。比如可以下载文件,下载完成后,服务自己停止。

     2、另外一种Service可以叫做Bound,可以调用bindService,然后向服务发送请求,返回结果等,甚至是跨进程的交互。

           当所有的组件都不绑在服务上时,服务摧毁。

     3、服务是运行在进程中的主线程中,但是我们应该在服务中启动新的线程在做事情,这样可以防止主程序无响应,提高用户体验。

三、内容提供者

    1、内容提供者其实就是数据的提供,后台的实现就是数据库的表,数据库是SQLITE。

    2、可以对内容提供者进行数据的增、删、改、查,仍然存在sql注入,后台具体的执行的是相关的sql。

    3、如果你想访问内容提供者,那么则通过ContentResolver(Client)去访问Content Provider(Server)。

    4、Content Provider的query方法返回一个游标,对所有的查询的结果集进行了封装。

    5、展现查询结果可以用SimpleCursorAdapter,ListView配合着使用。

    6、Content Provider必须指定权限,如果不指定权限的话,其他应用程序则不能访问此Content Provider。

    7、如果一个应用程序没有权限访问Content Provider,则可以使用Intent的方式去访问具有访问权限的其他应用程序的Activity等来返回结果达到

          间接访问。

    8、可以批量访问,修改Content Provider的数据。

    9、怎么决定是否应该使用Content Provider?

          1)如果你需要向其他应用程序提供复杂的数据与文件。

           2)如果你需要拷贝复杂的数据到其他应用程序。

           3)如果你需要使用搜索框架提供自定义搜索建议。

            4)如果你仅仅是在自己的应用程序使用,那不应该提供Content Provider来使用SQLIte。

     10、如何定义一个Content Provider

           1)决定你的数据的存储方式,是文件形式的(图片,声音、视屏),还是SQLite型的。

            2)实现ContentProvider类。

           3)定义ContentProvider的权限,ContentURI,列名,如果你需要这个ContentProvider所在的应用程序支持意图,则提供意图。

           4)加上AbstractThreadedSyncAdapter的实现进行同步数据。

   11、_ID这一列是ListView使用的,也就是主键,按照惯例来说是应该有的。

   12、android的异常可以跨进程交互。

   13、如果你想用Content Provider保护你的数据,那么应该把这些数据放在你的内存设备上,外存上不能限制数据的访问。

四、广播接收者

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值