android实现开机自动播放音乐实例(Broadcast、Service)

来源:互联网 发布:悔创阿里杰克马 知乎 编辑:程序博客网 时间:2024/06/05 09:07

转自:http://blog.csdn.net/liwei3gjob/article/details/8011196/

android实现开机自动播放音乐实例(Broadcast、Service)
1.首先开机启动后系统会发出一个Standard Broadcast Action,名字叫android.intent.action.BOOT_COMPLETED,这个Action只会发出一次。
2.构造一个IntentReceiver类,重构其抽象方法onReceiveIntent(Context context, Intent intent),在其中启动你想要启动的Service。
3.在AndroidManifest.xml中,首先加入< uses-permission android:name=”android.permission.RECEIVE_BOOT_COMPLETED”>< /uses-permission>来获得BOOT_COMPLETED的使用许可,然后注册前面重构的IntentReceiver类,在其< intent-filter>中加入< action android:name=”android.intent.action.BOOT_COMPLETED” /> ,以使其能捕捉到这个Action。
一个例子


xml:
[html] view plaincopy
  1. <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>  
  2. <receiver android:name=".StartBroadcastReceiver" android:label="@string/app_name">  
  3.   <intent-filter>  
  4.     <action android:name="android.intent.action.BOOT_COMPLETED" />  
  5.     <category android:name="android.intent.category.LAUNCHER" />  
  6.   </intent-filter>  
  7. </receiver>  
[html] view plaincopy
  1. <service android:name=".StartBootService"/>  

Java:
[html] view plaincopy
  1. public class StartBroadcastReceiver extends BroadcastReceiver {  
  2.   static final String ACTION = "android.intent.action.BOOT_COMPLETED";  
  3.   public void onReceive(Context context, Intent intent) {  
  4.       if (intent.getAction().equals(ACTION)){  
  5.           context.startService(new Intent(context, StartBootService.class), null);//启动倒计时服务  
  6.           Toast.makeText(context, "OlympicsReminder service has started!", Toast.LENGTH_LONG).show();  
  7.       }  
  8.   }  
  9. }  

Service:

[java] view plaincopy
  1. public class StartBootService extends Service {  
  2.       
  3.     private static final String TAG = "MyService";  
  4.     private MediaPlayer player;  
  5.       
  6.     @Override  
  7.     public IBinder onBind(Intent intent) {  
  8.         // TODO Auto-generated method stub  
  9.         return null;  
  10.     }  
  11.       
  12.     /** 
  13.      * 创建服务 
  14.      *  
  15.      */  
  16.     public void onCreate() {  
  17.         super.onCreate();  
  18.           
  19.         Log.i(TAG,"开机服务已经创建!");  
  20.         //初始化播放器  
  21.         player = MediaPlayer.create(this, R.drawable.suaicong);  
  22.         player.setLooping(true);  
  23.           
  24.     }  
  25.   
  26.     /** 
  27.      * 开始服务 
  28.      *  
  29.      */  
  30.     public void onStart(Intent intent, int startId) {  
  31.         // TODO Auto-generated method stub  
  32.         super.onStart(intent, startId);  
  33.         Toast.makeText(this"开机播放服务~"0).show();  
  34.         player.start();  
  35.     }  
  36.   
  37.     /** 
  38.      * 暂停服务 
  39.      *  
  40.      */  
  41.     public void onDestroy() {  
  42.         // TODO Auto-generated method stub  
  43.         super.onDestroy();  
  44.         Toast.makeText(this"停止播放服务~"0).show();  
  45.         player.stop();  
  46.     }  
  47.   
  48. }  
0 0