码迷,mamicode.com
首页 > 移动开发 > 详细

Android广播(BroacastReceiver)与服务(Service)

时间:2018-05-10 17:18:11      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:main   string   创建   代码   服务   let   实现   roi   short   

BroadcastReceiver可以理解成是一种组件,是默默的在改后台运行的,用于在不同软件和不同组件之间的传递,无法被用户感知,因为他在系统的内部工作,BroadcastReceiver被称为广播。

  一、广播的注册有两种方式: 

    1、动态注册,使用Java代码进行注册

    2、静态注册,需要在AndroidMainfest进行注册

  二、我们先来讲解下如何静态注册:

    1、我们先来创建一个继承BroadcastReceiver的类,实现onReceive方法,为了更好的体验,我们在这个方法里面弹一个吐司

     onReceive在接受到广播后会触发

 1 public class MsgService extends BroadcastReceiver {
 2 
 3     private String ACTION_SGC = "android.intent.action.BOOT_COMPleTED";
 4 
 5     @Override
 6     public void onReceive(Context context, Intent intent) {
 7         if(ACTION_SGC.equals(intent.getAction())){
 8             Toast.makeText(context,"静态广播",Toast.LENGTH_SHORT).show();
 9         }
10     }
11 }

    2、这是需要在AndroidMainfest中进行注册

 1 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
 2     
 3     <application
 4         android:allowBackup="true"
 5         android:icon="@mipmap/ic_launcher"
 6         android:label="@string/app_name"
 7         android:roundIcon="@mipmap/ic_launcher_round"
 8         android:supportsRtl="true"
 9         android:theme="@style/AppTheme">
10         <activity android:name=".MainActivity">
11             <intent-filter>
12                 <action android:name="android.intent.action.MAIN" />
13 
14                 <category android:name="android.intent.category.LAUNCHER" />
15             </intent-filter>
16         </activity>
17         <receiver android:name=".MsgService">
18             <intent-filter>
19                 <action android:name="android.intent.action.BOOT_COMPleTED"></action>
20             </intent-filter>
21         </receiver>
22     </application>

    注册的代码是在17行到20行,别忘了还要写上权限,权限就是第一个行的权限

    3、如何使用广播

 1 public class MainActivity extends AppCompatActivity {
 2 
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_main);
 7         init();
 8     }
 9 
10     private void init() {
11         findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
12             @Override
13             public void onClick(View v) {
14                 //这里的意图必须使用和其他一样的意图android.intent.action.BOOT_COMPleTED 如果使用的不一样,将会出现错误
15                 sendBroadcast(new Intent("android.intent.action.BOOT_COMPleTED"));
16             }
17         });
18     }
19 }

 

 

      

  

  

Android广播(BroacastReceiver)与服务(Service)

标签:main   string   创建   代码   服务   let   实现   roi   short   

原文地址:https://www.cnblogs.com/mCarrYoung/p/9020036.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!