How to send message from BroadcastReceiver to activity or fragment

后端 未结 2 1374
深忆病人
深忆病人 2021-01-23 06:28

I have a receiver, it does call details saving task like storing incoming call, outgoing call etc.. all these details goes to sqlite DB. If my activity is not running, then its

2条回答
  •  忘了有多久
    2021-01-23 06:53

    You can create a BroadcastReceiver inside an activity. Register it in onResume() and unregister it in onPause(). Whenever your other receiver receives a broadcast, send a broadcast to this receiver too. If the activity is running(i.e. on front), the broadcast will be received. Do whatever you want in its onReceive().

    Example:

    BroadcastReceiver br = new BroadcastReceiver() {
    
            @Override
            public void onReceive(Context context, Intent intent) {
                //Do stuff
            }
        };
    

    Also override methods:

    @Override
    protected void onPause() {
        super.onPause();
        unregisterReceiver(br);
    }
    
    @Override
    protected void onResume() {
        super.onResume();
        registerReceiver(br, new IntentFilter("intent_filter"));//Use any string for IntentFilter you like
    }
    

    You can update fragments from activiy by creating methods inside fragment and access them from Fragment object inside activity.

提交回复
热议问题