使用Service的时候一定要先在Manifest里申明,就像要开一家公司一定要去工商注册一样。
//Serivce的bind
bindService就像先签一个开户合同,然后进行服务startService()
可以通过ServiceConnection得到Service的联系方式,然后在以后的过程里面使用Service提代的服务
在证券公司里面开一个炒股的帐户的过程,签协议的时候会留一下自己的电话号码,然后投资顾问就会根据这个电话号码打电话过来通知你今后可以通过这个号码来服务,以后有什么需求就打这个电话。
unbindService等同于签一个销户申请,然后结束服务。
IntentService是一个异步服务,里面有一个中断机制,也就是打扰机制。老师说这里存在一个队列,当一个任务做完之后就会通知主线程,然后运行下一个任务。但还没有亲手实验过。
说说res/raw和assets两个很有用的文件夹。raw文件夹是在res下面新建的,而assets文件夹一开始也是没有的,要自己手动来建立。点击New-New Folder-Assets Folder,就能看到他自动建立的位置。
(公司网速慢,上传不了图片)
res/raw的用法老师已经介绍过,它会生成一个int型的ID,然后直接使用就可以。现在记录一下Assets的用法。Assets Folder就像一个仓库,里面所以在使用它的时候需要有一个仓库管理员来负责。所以需要一个AssetManager来处理工作。
AssetManager assetManager = new AssetManager();
assetManager = getAssets();//将仓库交给管理员
String[] assetsList = assetManager.list("XXX");//整理出一个仓库的清单
这样就能得到所有Assets文件夹下一的资源。在上面的例子中,list(“XXX”)中的XXX可以为空,表示Assets的根目录,如果根目录下有一个子目录如/music,那就可以把XXX换成music就可以了。
最后再记录一下BroadcastReceiver类。见名解意,一个广播需要有一个频道,(用IntentFilter和setAction,addAction来实现),一个接听频道的人,和一个发送广播的人。发广播的就需要把自己的想法表达出去,所以还会用到Intent类。
//发送广播的一方
//假设Receiver是继承于BroadcastReceiver
Receiver receiver = new Receiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.setAction("此处填写广播名称或者叫电台频道");
registerReceiver(receiver, intentFilter);//这个函数是系统自带的
由此就态绑定一个Receiver了。