마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

intent 없이 broad cast receiver 클래스의 데이터를 다른 클래스로 넘기는 법(2)

0 추천

문자메세지 수신에 대해서 intent filter가 설정된 broadcast receiver 클래스가 있습니다

 

이 클래스가 문자메세지가 수신되었을때 작동하여(onReceive), 문자의 내용과 전화번호 등등의 정보를 받습니다

 

이 데이터들을 다른 클래스, 가령 메인 클래스에 인텐트를 통해 전송을 하는 것은 성공을 했는데

intent = new Intent(context, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("msg", message);

startActivity(context,intent,null);

이 문자 수신 전에 메인 액티비티 블루투스 연결 기능을 제공하고 있었고

메인에서 유저의 조작을 통해 이미 블루투스 장치와 페어링 된 상태였는데

이제 문자 수신 이후 리시버 클래스가 intent를 통해서 새롭게 start activity를 시켜버리니까

메인 액티비티가 새로고침이 되서 페어링된 상태가 풀려버립니다 . 이것이 문제입니다

어떻게 해결할 수 있을까요?

 

코두 (370 포인트) 님이 2019년 2월 20일 질문

1개의 답변

0 추천
https://stackoverflow.com/questions/22241705/calling-a-activity-method-from-broadcastreceiver-in-android

 

MainActivity에 브로드캐스트 리시버를 생성 하시고, 문자 수신 브로드캐스트 리시버에서 onReceive됐을 때, MainActivity에 등록한 브로드 캐스트 리시버를 호출해 보세요.
뱅구다 (11,280 포인트) 님이 2019년 2월 20일 답변
...