android四大组件学习总结以及各个组件示例(2)
上篇博文讲解了activity、content provider,此篇博文来仔细总结service、broadcast receiver;
3. Service
>什么是服务?
>windows下服务: 没有界面的长期后台运行的程序。
>Android下服务: 是应用程序的一个组件,长期后台运行的没有界面的activity
##服务两种开启方式
1.* startService() 开启服务
>一旦服务开启,服务就会长期的后台运行,即使开启者activity退出了,
>服务还是在后台继续运行,直到用户手工的停止服务为止。
2.* bindService() 绑定服务
>如果开启者activity退出了,服务也会跟着挂断。
>解除绑定服务unbindService()
>服务只可以被解绑一次,多次解绑服务会抛异常
>服务应该只去绑定一次
##服务的生命周期
* 采用startService和stopService去开启停止服务
>1. 服务只会被创建一次,如果服务已经被创建就不会重新执行onCreate方法了
>2. 服务只会被停止一次,如果服务已经停止就不会重新执行onDestroy方法
>3. 如果服务已经开启,多次调用startService方法,服务只会执行onstartCommand,onstart方法
* 采用bindService和unbindService开启停止服务
>1.bindService() 如果服务不存在 oncreate -->onbind
>2. unbindService() onunbind-->ondestory();
>3. 绑定服务不会执行onstart和onstartcommand方法
>4. 服务只可以被解绑一次。多次解绑抛异常。
* 混合方式的开启服务(复杂)
1. startservice 开启服务 (保证服务长期后台运行)
2. bindservice 绑定服务 (调用服务的方法)
3. unbindService 解除绑定服务 (停止调用服务的方法)
4. stopService 停止服务 (停止服务,播放器停止)
##为什么要引入bindService的API
>为了能够调用服务里面的方法
##绑定服务调用服务方法的流程
1. 创建一个服务,在服务的内部有一个方法需要被调用。
public class LingdaoService extends Service
2. 在服务的内部创建一个中间人 MyBinder 实现IBinder接口,继承Binder类,中间人具有一个方法这个方法可以间接调用服务内部的方法。
/**
* 中间人,在服务的内部
*/
public class MyBinder extends Binder{
/**
* 调用服务里面的方法
* @param money 钱
*/
public void callMethodInService(int money){
if(money>2000){
methodInService();
}else{
Toast.makeText(LingdaoService.this, "太少了,你懂的", 1).show();
}
}
}
3. 实现服务的onBind方法。返回中间人对象。
public IBinder onBind(Intent intent) {
return new MyBinder();
}
4. 在activity里面了,通过bindService的方法去绑定服务。
bindService(serivce, conn, BIND_AUTO_CREATE);
5. 如果服务成功被绑定了,执行onServiceConnected()方法,得到中间人对象。
public void onServiceConnected(ComponentName name, IBinder service) {
myBinder = (MyBinder) service;
System.out.println("在activity里面获取到了服务成功绑定返回的中间人ibinder");
}
6. 通过中间人对象间接的调用服务里面的方法。
myBinder.callMethodInService(5000);
下面通过播放本地音乐的例子来讲解服务:
首先创建一个项目工程文件,并布局如下,将音乐文件添加到res目录下面的raw文件下面:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAASAAAAJFCAIAAADyML2jAAAgAElEQVR4nO2dbYwV12H390u+VnyIlKAmiusQ4mbzZNVti5RR61hVY+xUip9YdgRtEEixpyVyJHvVtLiNC4sLuQYaTzDERC5bIAYt2NfFwb6ADVkTygY7yF1iWN/sNWXNQna9b14wgQv20/N8mHtnzuvcuS9n7jkz/5+O0N65Z2bOLvO758zcOf/pIAAAbXQkvL8HN3bSJeG9A5AwiQrGGQXBQOrRK9jp/KN+ITKdWitYwe1wvFLMmh0dHR109YLb4RYIKXlOh0BYrVIrXInbIbO6W2Bfx2wcSBcaBRt6/lH6ZX2CFVz/GPURD3zHK8l1YI5w9boh9PtugVLNN4Sv7FK68c74K4U/UauLlUEmaL1gW3uf2Nr7xNbe3M33+m6+13ft/I+nT28kVZ229ub8QpSClTyno8NxXYfpLtj32Y6E64sEgWof275WKmPdQrXTCxd5XF3BePRggDQs2MDAQC6Xk771xD//27ofnSSXf8EUQkh952C8RsIbNfqvoA9jxnXcII9Ilxdcxyt4juPwIoeO+B8C/suw3+Lb6XileoauIIU0ItjRo0c7OzsXLlyoqtDzyFNk6gBfCCHUVUTSoGD1Hq9sBxYlmOv6I0RqiFg5XfM3QAlW8hzXq44Wq8trGw/Rskfdgvl2LVmyJEKwb//tT8ilZyWlDhSCcX4JQzfhWFbWoDo5Xw3XVVStNCPcEiOcrAMruB0djleq2gqyS32CBXYtXbo0QrBvLu8j539Mzv94+YPbVzywfcUDfSse8H/YvvyB7Sse3L7c//nB7Sse2K7YhlQwYaHi2oHykoKsByu4jue5gWr++9IfuJ6s4PoSCQLS+6AFRw+WPeoQjLYrWrCv/fVuMvKEX+5dtuvFd/+fqnzjWz9VbEMmmLisdg9WrVaVIzgxY2oUXLovk/ZggWmhvQWX3RN/kQN2gToEy+VyCynWr1+vqvmV+/aRs4+Rs4999Zv9e4fLe8+W9w7f2Dvs/xuU8lfv71fvTSKY5PQrRg9W8hxmwFjdqHS5ugcLOjDmWrwgGHOZnnERgmUSLd+D/enX8+T09758T77vxJW+E1e2D17pG7zSd+JK3+CV7Seu9A1e6Ru88uX/+7xibb4XoQ5n4SCt1YOpeir+Zc0ejBkJVjun6qX56i7QgwEeLYJ96e79XV97cfPL05tfnt5cmNr88tTmwvTml6c2F6b8JV1f29+aPcU+BwuOffGiA32lULxiUfIct1Dpviq++F+LcedZ1KVHgh4MVNF1J8dtdx6IKJp2CoBpJH03PQCZAoIBoBEIBoBGIBgAGoFgAGgEggGgEQgGgEYgGAAasUkw9/budjcBgPowUbDjGxcFhRCydvF8sbS7jQDEwjjB8g8toF+O/ffhtYvn37z2ysTglk3L7vR/gGDAFpIWLCLMgxByfN2i8sS28sS2uaI3MZQbfW3V++cH1y6ePzG45dfPrXFv7/Z/gGDAFhIVrGaYx5F13eW5k3R59J471i6ev2nZne7t3X7ZtOzOtYvnS8/HqOkiwWSuaiRUOH8F00dAciQnWJwwjyOru8sT++ny0bXzwRDRvb07aogomaJZCduoLqzO4QIgKRISLGaYx0uru8ujO4KS7+mKKMLa9MQuH9Y5BKiBxElCsPhhHvmeznLR80u+p6s8uk1aJoZyMsF86In8EAy0mSQEix/msfuhBeVirlzM5Xu6/B/EorSr5HlU3EaQACCZeUwIIQUPrgH9mHWZvm/5p8tDq/I9XeWhNdIS2XdRVzCoHA/mtCy8DIK8QpAEZgn25L3z8z1d5aFV0hJtFwAGYpZghJA+9/MRpd2tA6A+jBMMgDQBwQDQCAQDQCMQDACNQDAANALBANAIBANAIxAMAI2kWbBH/uwT7W5Cw1Tu6WrpDV3K58oDfaRKsIG1f3Tsn/5PUJ66/zP0y4G1f9TuBsZFjwoQrA2YLtiJEyeuXr0as/Kxf+wsDfRden3npdd3vvncxr6Hl9Avj/1jp9amthA9E2sgWBswXbA9e/b09/dPT0/HqTzwvS9cen3njcuvzpze8/ahp/seXkK/HPjeF3S3tlVAsNRggWCTk5PPPPPMxYsXa1Z+9ZEvXHp958zpPTOn97x9eJsvWPDy1UciBBOzOujHv9KhA45XqMx5oR8Sy/lQ8pwO6pmzHW6BObzDnwtuh+N5zEaoHfOPtQ0ms4lrsW12PE90lEoo4WfsyKJK6tgvUGKBYISQ6elpz/NGRkaiKx/87m1vPrfx7UNPv3142y93rH30njvolwe/e5tiPTGrg10STtSk8nP8Y5IO1xE2WnnsrDi7mhGM3oj4aOmS51JPao9ai55OWvIc0QA2oYTZWlCVmqsad78gCjsEI4SMj4/39vbOzs6qaj7yZ5946v7P9D28xC+P3nOHX4IlT93/Gfl1RXFAxi8JDjv6DdXP9FaoD/qIHiw8uOXPbhf6Etla3DqSFnEfA9WXwoPkGdtq7hdEYodgMzMzcXqwF779OfqqxqP33EG/fOHbn5OvFkuwoJdIVjC6K4peqxnBxLbH3y+IxALBpqamYp6D7V3x2YiLHHtXfFaxnpjVIQwRJV2L7GdhmBcuoN6iztBqCcYMFqPXUgwR2RawNcKBH3WWyXfVNVsLIrBAsPhXEXd/69aIixy7v3Wrck1JVof6IkcMwShBw+Mz2InjurGHiGHLaq5F1w0vcrCCua7sGofkekY9+wVqTBesru/Bdi29lb6q0ffwEvrlrqVqwdIHMurMwHTB6uLE4907lv5BUJ66/zP0yxOPp/vpRyXPQYaxcaRKMA6b70VsCGqkB7sMIc2CAdB2IBgAGoFgAGgEggGgEQgGgEYgGAAagWAAaCTNgtn8PZiOTI4WgYkq9ZAqwZDJkQQQrB5MFwyZHMBqTBcMmRzAaiwQDJkcLcrkqNV4eQuF/TPjV1mYB6CwQDCCTA5pM+rO5KjVeGkLxV+NbTy8isYOwQgyOZg+rLHIgDizRRUfAfS2pH8MoMAOwZDJUXstXYKFrzu4ahAsBhYIhkyOFmVy1NF4OufA45xjOzf27wZ4LBAMmRxxszFqZHLU7n5lLaT+EOIJp+TvBhhMFwyZHA2C8ZsZmC5YXSCTA5kcppEqwThsvhexIZDJYR5pFgyAtgPBANAIBANAIxAMAI1AMAA0AsEA0AgEA0AjaRbM5u/Bsp3JkaJUglQJhkyOJIBg9WC6YMjkAFZjumDI5ABWY4FgyOSwKJND0ljJ39bfhB9h4LoOM/emOosuYnVJEIhsv0ZggWAEmRzSZhiYySH5O3BT1+jPDObjglE8KvZDtkGDz1ntEIwgk4P5eDY2k0OoTI8Dwj6HE0JoQMQu5BsU9msMdgiGTI7aaxmUyUFVltfhtx7EK/C/ae3/GsV+jcECwZDJYU0mh1iZqUMKrmJIXfIcx3WZ7ANV7Idsg5L9moIFgiGTI+ZaJmRy8JWZOsr+kb0qVCv2I/pCilF6mS8YMjkaBFf6zcB0weoCmRzI5DCNVAnGYfO9iA2BTA7zSLNgALQdCAaARiAYABqBYABoBIIBoBETBXtwYydd2t0cABrHOME4oyAYsBqzBBN1ope4t6f7m+IWcXbD1i39ykkHupns739s5alJQsjg4cc2nGtXM4zBRMGOb1zkl2DJ2sXzuZJAY87tW7z1scVb9w1WF4yd2rJ462N+MfjQiRCs9e7Rf5PFW7f0zzYqWOWv3caPBj0kJFjMWwpVPdjNa69MDG7ZtOxO/4fEBDt8tvpisr//MeolGTyc3KEwdmoLvetaJC6Yom3192Dt7Xv1kJBg8W+Kl56DTQxu+fVza9zbu/0fEheszkO8xUAwi0lOsPjRGvT1Q//fTcvudG/v9sumZXeuXTxfcT6mCqWQ5jpIYy1CQsEm+/uj/uMHD1fHSP3HxqpLVp46toFdKK3pH6CDh4PR0WR/f7XO4bPMKtWDT9wIWy1ioEUfwfyOxk5tCTc4e2yloj0cgmCT/f0Vr2jBJG2ePbaSH29DsIaJGa1xZLX8MoY/MnRv744cIqpCKaSxEPIwDJpQMPlxGRxG/ikHoY62wcPByRtzTiLW9M9hggNx7NS+6o7Obqgupw9i5e6Co/zcvjiCyXZEvxs0T9IeGuYcrP/YmEwwWZvDatLmpYdEBSO1ojVeWt1dHt0RlHxPV0ThV1bNmVemOMjmLFLIBatQPXrObthKdx2VT2jukFp5alJVUzLEEj7aqTrSjXDNiz1EFHZUbTZ79Eu6mpAYPZjyT7R4a/hXqtVya0lUsJrRGvmeznLR80u+p6s8uk1aJoZy9Qkm0acewRhhgiXcpz73rkwwSU32AJ3s7w8GUeGRygombiS2YLPHVlL9qrgjcm7f4v5jY7PHVlJvSaop208Ugim18TvA6t8KgjVMzGiN3Q8tKBdz5WIu39Pl/yAWuV2ERA4RxViIugTzP8Vpx+jxDz08kw6KgiGiWJM9QKkjbPbYSsUQUbo75nqM4jClzrLkO/LPNjcc3iI54plq7DZrnYPJ2jzZf0q8gATBGibmVcS+5Z8uD63K93SVh9ZIi9ouQogilIJIUxzqE4wQ5nSfucAguQwgFUxakztAw1Oa/n0bgh6jMkiLuOoQDsNWnjomOUwjvtOjd1RZXrsa0+DaFzlkba40iW4VBGuYmN+DPXnv/HxPV3lolbTUsIuj6VAKXjCgGwiWAH3u5yNK5KotDqUQPvWBRnAnhw0glAIYRroEA8AwIBgAGoFgAGgEggGgEQgGgEYgGAAagWAAaMQaweaKh0Z3zJsrHtKy9Xpv+1DMcMEzTQCHNYKN7pg3d/K20R3zalVknzQVE82CMTNm5Lf2R349Tk1eA3Zh1r2IEQytmTe6Y17tTqzkOY5T91MOW9XzqAVTb559Kibfcn9aAPU8PGAVZt1N3/HgoUXff6FrzYHbHj/8yY0n5j35xse2vtXx4CESDBFfu210W1Qn5t8YX3DrPBzbKBjztEfVE1CNezIqiIlZmRyfWPx9afHfHVozb+61W4pehGDSJ4Kr4jfYqc7M87cLbgcznSzyGajS7TBQNQRN2A8DhYoQzFbMyuQghHxp6wpV8UeJRU89SlQ+rVyM3+BmYbKPVJa+Q68kf0p37Xv4xXM3Th0IljLMyuQghHxszV2rDn1fLB9bc9dc8dBQbt7EoVuKOXknpnjKt2xupSpfgDuU+eO9+i6dnSPfjgqhBnqwVGNWJgch5GNr7lIVQsjQmnkTh24ZWiMVTEi36VCnAzQumOOVWi1YuADnYGnDrEyOYz1fiS7+KHFolWyUyF+CC15L0wFUAR7ikI0/mysR1RCR3g7bMiqogNoCvy12+/SGIJitmHUV8ejf/cnIzkdU5ejf/clc8dDJVfMm9n/y5Cq+ExMvcVeXKOI36DBST9GDsfXkFznk2xEbx14CoRUK54nS2w9VEztlYAtmfQ9WWLLgzIa/8stb7A9vbfirwpIFhBCVYAAYiFl3cuy/++N+efHuj++/q1ru/vj+uypLCCEnV83zS7sbC0BtzBIMgJQBwQDQCAQDQCMQDACNQDAANALBANAIBANAIxAMAI1YI1jKMzlUG9SE9E7Ilm0ThFgjmM2ZHMz9hPKm6T06BYsgWFKYdS9iBDZnclB3GLfsKKxLjIjKuE9fL2bdTZ/STA7mCZot2hUEswNkciSQySEVjN1RZYNMByeds1Kd4cbtjp4zE2NCdLiAaobkN6T+DpLH8Ep/Bf5vEvUc3wyATI5qDY2ZHNIhIrsjyRTpYFHJc+lfhRaD/7UVPVINwZgnV0uXq9sg+9CRtSerPSUyObgqOjI56IscChPEo1N8n/n4Z+dBswhNqNmDiW9IhIhqA2H/JpL2+EszdxUEmRyEraIjk4MZIlILpYJVthGuIw80kAUNKGlasJptIOq/idCSTGmGTA6iP5OjPsFIyXMc16WjDZhsAekQkR6miiOxWkNE5heQyVO7DRHD5oqwnuz8NfWYdRUxpZkcdQrGf5UXDs3oCO3KUuUVCH5fzIiN64Vc4RqHrGcT2hD5GSFsUbyQkgXM+h4MmRwgZZh1JwcyOUDKMEswAFIGBANAIxAMAI1AMAA0AsEA0AgEA0AjEAwAjUAwADRijWApz+TQSktahUSAhrBGsNRkcrThVjwI1j7MuhcxAsszOdg70xOWzMx+NRuYdTd9ejM5VLNFEgGCtQ9kcnDTgDVlcnA+qaa7lKh3pdM7xMp1/XYNbsHxSqpfOeORGzVBJke1ht5MDpVg0jgNVU6GtHJdv119W5CmJSByoy6QycFV0ZXJIQhGBVXwPY1iGr8y6yL2b9fwFgjvo2wj8u474yCTg7BVNGVysILRR3zt+pRgksp1CtbYFoj6VxZaDs1okMlBEsnk4K4iMsNXIU5DlZMhrVzXb9fYFgoecw6GyI06MOsqYnozOfgRlfRNZuuSnAxp5bp+u3q2ENYUYqYQuREbs74HQyYHIQSdQJow604OZHIQQiBYmjBLMEAIgWBpAoIBoBEIBoBGIBgAGoFgAGgEggGgERMFe3BjJ13a3RwAGsc4wTijIBiwGrMEE3WCYMBqTBTs+MZFfiEQDFiOiYJFL0kK3E4BWoBZghHFOdjxdYuCklRDIBhoAcYJRqiriKQqWHnupF+OrOuOWlM2jUJcFj3Zgp9pHEywxGQMUD9mCXZktdyf8sR+v/Qtv0W9dslzhXmM0XkzJKgtD8agjIRXoBHMEuyl1d3l0R1Byfd0RRTpFoSuRsyKEJbUDsZA4ARoELMEy/d0loueX/I9XeXRbdIyMZSTCBYx8V+SFUEtqSOpBpqB+jBLsN0PLSgXc+ViLt/T5f8gFrldhPEkzLEQsyIk6RHKYIxgiIjACdAYZgnWt/zT5aFV+Z6u8tAaaVHaRQg9PHRcNxBBzIqQpEdEXB3hLnpAL1APZgn25L3z8z1d5aFV0hJpFwAmYpZghJA+9/MRpd2tA6A+jBMMgDQBwQDQCAQDQCMQDACNQDAANALBANCIiYIhkwOkBuMEQyYHSBNmCdbcjGbFjYLhY1EBSBoTBWs0kwOCAeMw6/lgWnowANqHWU+4JE1lckAwYBzJCTY5OVnzGc0+jWZy+IIJM0uYhws7nudS05YB0EtyghFCpqenPc8bGRlRVWs2k8PhZn1x4RoFN3gfJ2YgERIVjBAyPj7e29s7OzsrrdZcJgc3RAynMDM9mPi0bwC0kahgMzMz0T1YU5kcEAyYR3KCTU1N1TwHayqTg0riIGwsBwQD7cKsq4jNZ3K4rpCeAcFA+zDrezBkcoCUYdadHASZHCBdGCcYAGkCggGgEQgGgEYgGAAagWAAaASCAaAREwVDJgdIDcYJhkwOkCbMEqy5Gc0FN7z50L8NClMwQZsxUbBGMzkgGDAOs+5FbE0PFgLBQJsx62560lQmBwQDxpGmTA56iEg/ZznmI2MBaD1pyuSQCxaZ0gGAXtKUyaHqwYIKwUu/T8OES6CdNGVyxBcsfAnNgFbSlMmhGCLKUjo8IU4AAB2YdRWxuUwORQ8mpnRUx4i4xgF0Y9b3YMjkACnDrDs5CDI5QLowTjAA0gQEA0AjEAwAjUAwADQCwQDQCAQDQCMmCoZMDpAajBMMmRwgTZglWHMzmgEwDhMFazSTAwDjMFGw6CUAWETSgg0MDORyuYgKTWRyAGAciQp29OjRzs7OhQsXRldrNJODSuCozKIMZ6XQj47FTBWQGMkJ5tu1ZMmSCMGay+RgEzj4JzJ3uAVMsARJk5BggV1Lly6NEKy5TA7WnrD3ojsxpHGARElCMNquaMGay+QQBFN6hDQOkBBJCJbL5RZSrF+/XlWzuUwObvwXpLT5L5DGAdqAWZfpm8vkEJyRXdBAGgdIErMEQyYHSBlmCUaQyQHShXGCAZAmIBgAGoFgAGgEggGgEQgGgEYgGAAagWAAaASCAaARCCYQdZdw86jugRSf4B5BjCbWrFLyHNzurJ9UCRaEefh5Hg0CwUDrMF2wmA8WI4TkH1oQ8bIOMiIYSATTBYv5aMzj6xaVJ7aVJ7bNFb2Jodzoa6uK+x+mkzzqCPOAYKB1WCDY5ORkzYc7H1nXHeR2SEtkmAfh5z9XDk0h5EOY/0IdxtT0s2CpZL4MtU1mOS2YJEpEaK3jeS63idq/BV0dE+ISwQLBCCHT09Oe542MjKiqHVndHeR2SEtkmAc3NZM5NKl3Sp5bPd6ra4RHacF1HMdfr+qXpD6/zXB5IJgsSkTWYGp7wW5j/BZBLQiWCHYIRggZHx/v7e2dnZ2VVmsqzIMbTYUvJccg3ydVqxRcxysVXMcrkZLnhJsT+jBum8HLqmBRUSJBr8RJWK0S67dA/k+i2CHYzMxMdA/WVJhHzEOz5Dkd4jv+8U2pVaj6paxfS7Da504QzBosEGxqaqrmOVhzYR704EquRaVW9QgueQ59LuM4TtCfBQNFRX16VfoFPUQUokQkDRYEi/wtJHuEYIlggWBxriI2F+bBXlbwoj77K5Vc15FZwn65JK1f8pwO1xWDQaiLHLWzUaWCRf4W4h4hWCKYLljM78EQ5qEGJrUT0wWLD8I8FECwdpIewYACCNZOIBgAGoFgAGgEggGgEQgGgEYgGAAagWAAaASCAaARCCZgx4RLxTYQE2AYqRIsS5kcEMwO0iNYxjI5GhIMJE5KBMteJgcEs4OUCJa9TA5JZeRwGEhaBMtcJod0diZyOIwjJYJlL5NDli+AmADzSIlg2cvkgGB2kBLBspfJIVZGDoeJpESw7GVy0OdXyOEwl5QIhkwOFphkCikRjCCTgwGCmUJ6BAMUEMwUIBgAGoFgAGgEggGgEQgGgEYgGAAagWAAaASCAaARCCZgwYTLOkGUQPtIlWCZyeSoEwjWPkwXLObzwUi2MjnqBFEC7cN0wWI+4TJjmRx1AsHahwWCTU5O1nxGc/YyORyvUNm4P6FaqI+sDiOwQDBCyPT0tOd5IyMjqmrZy+Sg0gMkcQTI6jAFOwQjhIyPj/f29s7OzkqrZS+Tw6HcFX5GlIAx2CHYzMxMdA+WvUwOCGYHFgg2NTVV8xwse5kckYIhq8MYLBAszlXE7GVyRAuGrA5TMF2wmN+DIZMjHjApaUwXLD7I5IgBBEua9AgGYgDBkgaCAaARCAaARiAYABqBYABoBIIBoBEIBoBGIBgAGoFgAlZOuIzRaAQHtINUCZbhTA4IZiimC4ZMjni0QjCgAdMFQyZHPCCYoVggGDI5OOj5MdW9Flx/Wgo/ywXJHG3GAsEIMjlkLXa8ElW34DKhBOK0SyRztAc7BCPI5OC7NH+JdNpltQEIDjAAOwRDJocABLMDCwRDJoe0xY5Xoq6rywRDMocBWCAYMjkkjeVVkQqGZI72Y7pgyOTQAExKDtMFiw8yOWIDwZIjPYKB2ECw5IBgAGgEggGgEQgGgEYgGAAagWAAaASCAaARCAaARiCYgJUTLqUbRIhA+0mVYBnO5JBuEIK1H9MFQyZHoyBEwAhMFwyZHI0CwYzAAsGQycEhZnIgpcNYLBCMIJND1mI2kwMpHYZih2AEmRx8l8ZFBohLECJgBHYIhkwOAQhmBxYIhkwOaYvZTA6kdBiKBYIhk0PSWFYMpHQYi+mCIZMjEWCSLkwXLD7I5GgCCKaL9AgGmgCC6QKCAaARCAaARiAYABqBYABoBIIBoBEIBoBGIBgAGoFgRMNkRwAqpEqwRjM5IBjQhemCJZLJoVUw3CSRaUwXLJFMDggGdGGBYPozOSKmirDBZdyE/IjJHZWfqWqIl8kkFghGksjkqE7WElM02NyLYFo/Y504PVE5hRlkCzsEI1ozOdghojo5SjWrXzbBHoIBQogtgunN5AjMUcQF+POB6QApQbBKihQEAxwWCJZIJgffNfEhFY7rhllRwhAxTLkRMy4gWKaxQDD9mRzUOZg0dYNXisgvclDr06tXFuIiRyYxXTBDMjkQMg0aw3TB4qMxkwOjPNAo6RFME/5YEHqBxoBgAGgEggGgEQgGgEYgGAAagWAAaASCAaARCAaARiAYABpJlWCNZnIAoAvTBUskkwMAXZguWCKZHADowgLBEsnkcLxCZapJ5fGrfI4G/ehV6qnIHltTPucSZBcLBCNJZHJ0hLEAHeJUSe55x2EyB1UzYlIzyC52CEa0Z3LQs5WFn+nZlWF/JXvKOAQDLHYIpj+To5ZgkumWEAzUxgLBEsnkiBQsTGbzl0rHjYFgYiwHyC4WCJZIJke0YJIwN7lgilgOkFlMF8yQTA4AGsN0weKjMZMDgEZJj2AAGAgEA0AjEAwAjUAwADQCwQDQCAQDQCMQDACNQDAANALBANBIqgRDJgcwjfQIhkwOYCDWCDYwMJDL5VTvIpMDmIkdgh09erSzs3PhwoWqCs1lcvhTI6ngAGFyCjU1hZobhudeglpYIJhv15IlS6IEayqTw/cpmLtV8lz6cedugY3ncBwnmIYJv0A0pgsW2LV06dIIwZrL5JBM7uf7sGqVgut4pYLreCVqkiUAKowWjLYrWrDmMjlYwUqeI4lh83Wi1CrAL1AbowXL5XILKdavX6+q2VwmBysYHxRQeafkOY7jBP1ZMFAEIAKjBYtPc5kc3BAxHB4yuRqcbTj/AjFIiWDI5ABmkhLBCDI5gJGkRzAADASCAaARCAaARiAYABqBYABoBIIBoBEIVuHOx5+/9TvbxfLIvx+5Wr7Z7tYBW4FgFW79znZx4Y6B4V++NfqN3P5zE3PJNwmkAAhWwRfsV2NMyf3szM0PPzpdGv+L1XsvTF0RVlI8Yw83UoEqmRbsc8t/8Htf/2dV+cIDXu8LZ/6XEELIW+ff++amA8IG2itY8GRbPIXMXDIt2C3LcpcuX5u7+ZFYihPvf3bFpoefLhTn/vcDQgghfUfeEjbQxqfEljwnnFcNxYwl04IteOBHY5d/N3PjI7G8PT53m/vUI0+/vG7/mXX7z/QdPSM7SR/ia1MAAAvnSURBVDPjMcyYWW0wmRbsD7+z7eLlazM3PvrE13/wyW/8cP59m+fft7ki2MTlL333mYMnS8PvkeH3CJFfBaHCPOixGuNd8K7jeaIJBbfD8QqV+TH+lOlq7VLULvhNwC9DybRgXT27Ll65NnPjo09+44eEkE8tf5YQ8vt/0zdz46Pie1f++O9/+sobpZEpMjJFiFow5qHNbL4AO3yjZ0oHUEk7vkTB/GnqJ8kuSDhtrf1dKFCTacH+9NG9F69cn7nx0fz7NpOqYJ9atosQ8pvJD778/ecGTpXOz5Lzs4RE9WDCy2Ax17lI+pqaz19X7ILdBLowY8m0YE7vgUsfhIL9/t/0Bf/+ZurqVx4/cPzN0sU5cnGOEIMFwyDRZDIt2B25Vy59UJYKNjL9u69ufPXk6dJ7H5D3PiAkYogoRgrUHCKG1/FjCSbfBb0QfplKpgX7qnd8/OoN/7o8IYT+953Za3f/6Benfl2a+R2Z+R0hET2YK1yAoLsZKuAjvMhRp2CSXUjCUYGJZFqwr//kjT//4QlVuXfbyaGzpStlcqVMiOJeqvpoZChnxjcBoFEyLRghZGRkZHh4eHh4+FNL/3V4ePjNXzPlTPGdazfJtZuENCgYNZJr8GIEBLObrAsWUNOfBnswaiTX0IkSBLMbCFbhL3vl01WC8pe9z7e7jcA+IBgAGoFgAGgEggGgEQgGgEYgWAVkcgAdQLAKyOQAOoBgFVqZyQFAlUwLpiuTQxcI4bCPTAtmVSYHQjisJNOC2ZrJgflf9pBpwfRkcrDzs3gZEMKRLTItmK5MDsqAgssZghCObJFpwXRlcoSGCX4hhCNjZFowXZkchJQ8x/FKslM0hHBki0wLpiuTw3/huK5Dn1ghhCOLZFowXZkchBBuIIcQjqySacG0ZnI0OozD3SGpItOCEX2ZHI1rAsFSRdYFC2hhJgd9+b1+IFiqgGAVkMkBdADBANAIBANAIxAMAI1AMAA0AsEqIJMD6ACCVUAmB9ABBKvQUCaHCtyMCypkWrCmMzlUtFcwRHcYRKYFazqTQ0UbBUN0h1lkWrCmMzlUmDFENKMVGSfTgjWdyUGo8Rj1hFj/0Pb4kRo73wTRHZkg04I1ncmheMa5b0MYseF4JdlNvIjuyACZFqzZTA6ujyiwPVg415IWRboCojtSS6YFazaToz7BgpehZojuSD2ZFqzpTI6IIaIgWMnzqJqVtRDdkXYyLVjTmRz0hQvhIofQg0mvSCC6I91kWrAWZ3I0NCJDdEe6ybRgpNlMDmpA1tg1BUR3pJ2sCxbQYCYHNSCr1y5Ed2QBCFYBmRxABxAMAI1AMAA0AsEA0AgEA0AjEAwAjUAwADQCweIj3vMOQA1SJdjxjYuComHzEAzUjemCnThx4urVq3Fq5h9aEPGyFUAwUDemC7Znz57+/v7p6enoasfXLSpPbCtPbJsrehNDudHXVhX3P3x83SK6NN0WCAbqxgLBJicnn3nmmYsXL0ZUO7Kuuzx3MqIcWdetWJWZNhW+kMz6qApG3wbI3BIYzkdhNojJIxnGAsEIIdPT057njYyMqKodWd1dntgfUfqW36LcRzhjJNCl5LnUDKyKG9GCcXPAOtwC7sgFlghGCBkfH+/t7Z2dnZVWe2l1d3l0R1DyPV0RRVi76gbrg9D5RAoW9l50JybmcIBsYYdgMzMz0T1YvqezXPT8ku/pKo9uk5aJoZxMsIph4dxjevo/00dFCqb0iMnhAJnCAsGmpqZqnoPtfmhBuZgrF3P5ni7/B7Go7CJEyMagbKGyL2jBaBODd+mzsUpNSQ4HyBIWCBbnKmLf8k+Xh1ble7rKQ2ukJcouQrgMGSZqw3X5Hox6m3pXfkEjKhkUZADTBYv5PdiT987P93SVh1ZJSy27ANCF6YLFp8/9fERpd+tARkmPYAAYCAQDQCMQDACNQDAANALBANAIBANAIxAMAI1AMAA0AsHigwmXoG5SJVh6MjmohzzXWAjMxnTBspfJ4U+VoW8iVi0EFmC6YFnN5JBOb8GcF/uwQLD0ZnIodi1sl0QtBEZjgWAkxZkckl3z26WAYPZhh2AkPZkcQT32Yee8OxAsJdghWIozOfhdU6tAsBRggWApz+Tgdk0i6kMw+7BAsLRncih3Ta0nXQgswHTBkMkBrMZ0weKDTA5gIOkRDAADgWAAaASCAaARCAaARiAYABqBYABoBIIBoBEIBoBGIFh8kMkB6iZVgqU8k4Owt/kDGzBdMGRysG85jgPBbMJ0wZDJQS9yvFLUvDNgHhYIhkyOyoLqHGkIZhEWCEaQyaHYDTAfOwQj2c7koF9AMLuwQ7BsZ3Lw05kxpdkiLBAMmRw06MHswgLBkMlBA8HswnTBkMkBrMZ0weKDTA5gIOkRDAADgWAAaASCAaARCAaARiAYABqBYABoBIIBoBEIBoBGIFh8bM7kwB1WbSJVgqUnk8NHOltTPoWTmwUjAMHahOmCZS+Tg94dfXNxdf6YMKuTub2fuaef3RgEawemC5bVTA7COiH1ozqJTDk5U7ExkCAWCJbeTA76sKe6HnqWs+OVuLQOZu3qXE92sEhvk5tiXW1xjGk0oBVYIBhJbyYHvbbjOGyKAKH0jJKT20l1OTcBlBGM+dCAYjqxQzCS1kyO6uoF1/FK/vlVkB7Aicb0Ybw9omDcmDBuug5oMXYIlt5MjmrYYaBWQeIX94rvdZiaobIQzAQsECzdmRyVtN7qhoOBIttrBRuXno9RGw9bTreH/8Bg34BfGrFAsJRnctB7FsNHubX5gahwsib9bqzD8Ty2B3NxjSMhTBcMmRytBmPCRDFdsPggkyMeECxR0iMYiAcESxQIBoBGIBgAGoFgAGgEggGgEQgGgEaME+zs4E//++c/Fsv4/7zR7qYBUDfGCfbG0W2/fffs5cuzdHl/KP8/L68tvbm/3a0DoD6ME+zkqz+ZHD9//eaHTCkenn3x78cK//LumVe17LXe+YgRU7R0zGsU5qy14x4nmyNJ2odxgp04tH18fPTajQ+Zcu74B0d65w78w7sv/Uvx9EDkBhq6f7X1gqnuoC+46uCMOLtr3/fEEKwRjBPsyMG+S5fe/aD8IVPGR/xy6e3B13/xfNT69N3p8WlVz8MKFt4aT7WOnyDW8B7i0iolIVgjGCfYKwd2jV68cPn6zbnrH9636Yt0mbv+4flLF/5r4IWI1avzq+o8FvQI5nrio83pG9ub20NcIFg7MU6wn/3s2XcujPl20ct9wd658O5rRyMudVTnTDKHYcH152t0cJ1HrcgKamIVP7lDEcUhbEfSkBKfLcBtWtZaahYlW71mCgi1BvWb08Po6ryxgtvheIXKyvTOqElyEKxujBNs3/49xdELvl1z1z/0C6kKNjJ64ZUjB5QrM9MNmdmKQsBZvMgK+h16JWaas3I71cM03Dc711iV/CG0VjqjMm4KiLwHE5IFqM8UXy221RCsMYwTbHd+31vnKoL99nLZL4SQ+zZ98beXy2fPXXjplZdV6yqCzrgDUezi1DPq+QGZcBzX3k7VkuAtdhVZ8ofQWuWUZXH2pZgCohoicjVVKXF0uyFY3RgnWN++/BvvjPmCjb5f9gsh5L5NXxx9v3zq3NiLBw8pVhWOuIhDtnHB2CM+znaqgz6+c1Umf8QWLFYKCARrJ8YJ9pP+//zVyNj52bJ4DnZ+tvyrkbHnC6/I15RkwYgS0JlNysgKbto9fxJFOB9qbocecrFHrDz5I55gcVNAqJWpy/1Bzo9iUA3BWoNxgm3Z8+J/FcdGpssj09eD64eEkPs2fXFk+vpg8cLul45IV+T94k7fecEiIyuEzURd5IixHf6aCHO+19HBJ3/EFCxuCkj43QA1XBUycCCYFowT7MndL/1ieOztqWtnp64Vp6/9Zupacfra8PT1s1PXzkxfP/b22LMvygUDwECMEyz37MvPnRj++ZmLPz9z8ejZsPhL8ifO/sf+gXa3EYC4GCfY0/mBJ3Ye/MHOg7ldB9ft8v89tG7Xodyug0/sPPjEzsLeQ79sdxsBiItxggGQJiAYABqBYABoBIIBoBEIBoBG/j+Q26qpWddL/gAAAABJRU5ErkJggg==" alt="" />
1.按照以前的思路,首先是布局,在layout下面的activity.xml中的配置如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <TextView
android:id="@+id/tvinfo"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/> <ListView
android:id="@+id/lv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" /> </LinearLayout>
2.然后就是java代码的书写:
(1)首先写bean类,创建一个MuscicInfo类,如果在企业项目或者大型项目中,需要序列化。
package com.xunfang.bean; public class MuscicInfo {
private String name;
private int id;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public MuscicInfo(String name, int id) {
super();
this.name = name;
this.id = id;
} }
(2)书写服务代码就是中间人的代码MusicService.java代码如下:
package com.xunfang.musicservices; import java.util.List; import com.xunfang.bean.MuscicInfo; import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Binder;
import android.os.IBinder; public class MusicService extends Service {
private MediaPlayer mp; @Override
public IBinder onBind(Intent intent) {
return new MyMusicService();
} public class MyMusicService extends Binder{
public void playMusic(List<MuscicInfo> list,int postion){
play(list,postion);
System.out.println("这里已经访问 了");
}
public void stopMusic(){
stop();
}
}
//播放歌曲
public void play(List<MuscicInfo> list, int postion) {
if(mp!=null){
//说明正在播放,然后停止播放
mp.stop();
//释放资源
mp.release();
mp = null;
}
System.out.println("歌曲id是:"+list.get(postion).getId());
//实例化
mp= MediaPlayer.create(this, list.get(postion).getId());
//播放歌曲
mp.start();
}
//停止歌曲
public void stop() {
if(mp != null){
mp.stop() ;
mp.release() ;
mp = null ;
}
} }
(3)然后在MainActvity.java中实现对音乐的播放
package com.xunfang.music; import java.util.ArrayList;
import java.util.List; import com.xunfang.bean.MuscicInfo;
import com.xunfang.musicservices.MusicService;
import com.xunfang.musicservices.MusicService.MyMusicService; import android.support.v7.app.ActionBarActivity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView; public class MainActivity extends ActionBarActivity {
private TextView tv;
private ListView lv;
private List<MuscicInfo> list = new ArrayList<MuscicInfo>();
private Myconn conn;
private MyMusicService mms; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.tvinfo);
lv = (ListView) findViewById(R.id.lv);
list.add(new MuscicInfo("big", R.raw.big));
list.add(new MuscicInfo("冰雨", R.raw.by));
list.add(new MuscicInfo("光辉岁月", R.raw.ghsy)); lv.setAdapter(new MyAdapter());
Intent intent = new Intent(this,MusicService.class);
conn = new Myconn();
bindService(intent, conn, BIND_AUTO_CREATE); lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
tv.setText("正在播放的歌曲是:"+list.get(position).getName());
mms.playMusic(list, position);
}
}); }
private class Myconn implements ServiceConnection{
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
mms = (MyMusicService) service;
System.out.println("1234");
}
@Override
public void onServiceDisconnected(ComponentName name) { } }
private class MyAdapter extends BaseAdapter{
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView tv = new TextView(MainActivity.this);
tv.setText(list.get(position).getName());
return tv;
}
}
@Override
protected void onDestroy() {
super.onDestroy();
mms.stopMusic();
unbindService(conn);
}
}
java代码在这块已经书写完毕,接下来就是在清单文件中配置服务,如下
<service
android:name="com.xunfang.musicservices.MusicService"
></service>
最后就是在模拟器或者真实机上面运行:
aaarticlea/png;base64,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" alt="" />
接下来最后一个组件broadcast receiver下篇博文总结。
android四大组件学习总结以及各个组件示例(2)的更多相关文章
- android四大组件学习总结以及各个组件示例(1)
android四大组件分别为activity.service.content provider.broadcast receiver. 一.android四大组件详解 1.activity (1)一个 ...
- Android 四大组件学习之Server一
上次学习了Android四大组件Activity之后,我们深刻理解了Activity.这次我们学习四大组件Service. Service与Activity的级别是一样的,都是Android系统不可缺 ...
- Android成长日记-Android四大组件之Service组件的学习
1.什么是Service? Service是Android四大组件中与Activity最相似的组件,它们都代表可执行的程序,Service与Activity的区别在于:Service一直在后台运行,它 ...
- Android四大组件之一Service介绍-android学习之旅(十二)
基本概念: service是android四大组件之一,运行在后台执行耗时操作,并不提供用户界面.其他组件如acticity可以通过startService启动该组件,也可以通过bindService ...
- Android的四大组件学习
一.Linearlayout : 线性布局 1. android:orientation="vertical" //控件的方向控制,vertical : 垂直布局 , ...
- Android四大组件之一“广播”
前言 Android四大组件重要性已经不言而喻了,今天谈谈的是Android中的广播机制.在我们上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就 ...
- Android四大组件之——Activity的生命周期(图文详解)
转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai 联系方式:JohnTsai.Work@gmail.com [Andro ...
- Android 四大组件之“ BroadcastReceiver ”
前言 Android四大组件重要性已经不言而喻了,今天谈谈的是Android中的广播机制.在我们上学的时候,每个班级的教室里都会装有一个喇叭,这些喇叭都是接入到学校的广播室的,一旦有什么重要的通知,就 ...
- Android四大组件之一 -- Service详解
相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了.Service作为Android四大组件之一,在每一个应用程序 ...
随机推荐
- go语言获取变量的数据类型
package main import "fmt" import "reflect"; var y string = "sdasd" fun ...
- JavaWeb 后端 <一> 之 Tomcat服务器 - Http协议 学习笔记
1.Web开发概述 1.1服务器上的资源分类: a.静态资源:指web页面中供人们浏览的数据始终是不变.html css js 图片 多媒体 b.动态资源:指web页面中供人们浏览的数据是由程序产生的 ...
- 容器_JDK源码分析_自己简单实现ArrayList容器
这几天仔细研究下关于ArrayList容器的jdk源码,感觉收获颇多,以前自己只知道用它,但它里面具体是怎样实现的就完全不清楚了.于是自己尝试模拟写下java的ArrayList容器,简单了实现的Ar ...
- 利用Python实现一个感知机学习算法
本文主要参考英文教材Python Machine Learning第二章.pdf文档下载链接: https://pan.baidu.com/s/1nuS07Qp 密码: gcb9. 本文主要内容包括利 ...
- FTP DOS 命令行
1. 在cmd--> 输入ftp 2. 进入ftp输入提示命令行,此时输入open ftp服务器地址,比如我的是本机就: open 127.0.0.1 3. 根据提示输入用户名和密码, 提示登录 ...
- [CF161D]Distance in Tree-树状dp
Problem Distance in tree 题目大意 给出一棵树,求这棵树上有多少个最短距离为k的点对. Solution 这个题目可以用点分治来做,然而我到现在还是没有学会点分治,所以只好用树 ...
- 有关conv_std_logic_vector和conv_integer
原文地址:关于conv_std_logic_vector 和 conv_integer 这两个函数的使用问题作者:xiphosura std_logic_arithThis is the librar ...
- CJOJ 1010【NOIP2003】加分二叉树 / Luogu 1040 加分二叉树(树型动态规划)
CJOJ 1010[NOIP2003]加分二叉树 / Luogu 1040 加分二叉树(树型动态规划) Description 设 一个 n 个节点的二叉树 tree 的中序遍历为( 1,2,3,-, ...
- 使用curl模拟ip和来源进行网站采集的实现方法
对于限制了ip和来源的网站,使用正常的采集方式是不行的.本文将介绍一种方法,使用php的curl类实现模拟ip和来源,实现采集限制ip和来源的网站. 1.设置页面限制ip和来源访问 server.ph ...
- C++中使用const修饰指针
在本文中呢,主要讲解四个方面,即:常量数据的与否和常量指针的与否中const如何对指针进行修饰: 1.指向非常量数据的常量指针 对于一个指向非常量数据的常量指针,我们应该清楚的知道,在这我们注重的是指 ...