How to register a reciver in a fragment

I'm showing bluetooth devices in ListView. I tried it in Activitybefore and it worked, but now I have to include this ListViewinFragment

It is clear that there are not one or two things, such as registerReceiver, unregisterReceiverand RESULT_CANCELED.

protected void onResume() {
    registerReceiver(receiver, filter);
     filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_STARTED);
    registerReceiver(receiver, filter);
     filter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
    registerReceiver(receiver, filter);
     filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
    registerReceiver(receiver, filter);
}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
    unregisterReceiver(receiver);


}

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode == RESULT_CANCELED){
            Toast.makeText(getActivity()     , "El Bluetooth debe estar activado para continuar", Toast.LENGTH_SHORT).show();
            getActivity().finish();
        }
    }

Lines starting with registerReceiver, unegisterReceiverand if(resultCode==RESULT_CANCELED){, bring me problems.

As an additional fact, I tried changing it to Activity instead of a fragment, but my main class has an error with this because I work with Fragments.

+4
source share
4 answers

Activity. .

:

 getActivity().registerReceiver(receiver, filter);

 getActivity().unregisterReceiver(receiver);

if(resultCode==RESULT_CANCELED){

if(resultCode == Activity.RESULT_CANCELED){

, .

+19

registerReceiver() unregisterReceiver() Context. Activity ( Context).

getActivity().

RESULT_CANCELED - Activity, Activity.RESULT_CANCELED.

0

, , , , , . . onResume() onPause() . , , .

0

, , :

getActivity().registerReceiver(receiver, filter);

:

LocalBroadcastManager.getInstance(getActivity()).registerReceiver(receiver, filter);

, , (IntentService).

0
source

Source: https://habr.com/ru/post/1605762/


All Articles