Android-Broadcast Receiver and Intent Filter

前端 未结 3 555
Happy的楠姐
Happy的楠姐 2020-12-30 12:20

I am new to android platform.please help me out how the Broadcast Receiver and Intent Filter behaves in android.please explain in simple line or with example.thanks in adv

3条回答
  •  不知归路
    2020-12-30 12:48

    A BroadcastReceiver can be registered in two ways: dynamic or static. Static is nothing but declaring the action through an intent-filter in AndroidManifest.xml to register a new BroadcastReceiver class. Dynamic is registering the receiver from within another class. An intent-filter determines which action should be received.

    To create a BroadcastReceiver, you have to extend the BroadcastReceiver class and override onReceive(Context,Intent) method. Here you can check the incoming intent with Intent.getAction() and execute code accordingly.

    As a new class, static would be

    public class Reciever1 extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) { 
            String str = intent.getAction();
            if(str.equalsIgnoreCase("HELLO1")) {
                Log.d("Abrar", "reciever....");             
                new Thread() {
                    public void run() {                     
                        Log.d("Abrar", "reciever....");
                        System.out.println("Abrar");                        
                    }
                }.start();                          
            }
    

    or, if placed inside an existing class, it is called dynamically with

    intentFilter = new IntentFilter();
    intentFilter.addAction("HELLO1");
    
    //---register the receiver---
    registerReceiver(new Reciever1(), intentFilter);    
    

提交回复
热议问题