안녕하세요, 앱 개발 도중에 궁금한게 있어서 글 남깁니다.
현재 액티비티 한개하고 클래스 한개 이렇게 두개가 있어요.
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String response = new ReceiverClass(this)).getResult());
Log.i("TEST",reponse);
}
}
blic class Ma
public class ReceiverClass {
public Context mContext;
private CheckReceiver mReceiver;
public static final String AUTHORITY = "com.br.test.INTENT";
public static final String AUTHORITY2 = "com.br.test.GETDATA";
public static String reponse = null;
public ReceiverClass(Context context) {
mContext = context;
mReceiver = new CheckReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(AUTHORITY);
mContext.registerReceiver(mReceiver, intentFilter);
Intent intent = new Intent(AUTHORITY2);
mContext.startService(intent);
}
public String getResult() {
return reponse;
}
class CheckReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (AUTHORITY2.equals(action))
reponse = ""+intent.getIntExtra("data", 0);
}
}
위와같이 위에 MainActivity에서 ReceiverClass의 onRecieve 에 들어오는 값을
String response = new ReceiverClass(this)).getResult()); 이런식으로 받아오게 했거든요.
그런데 결과가 계속 null 이 나와서요..
일단 로그 찍어보니깐 onReceive() 에는 값이 제대로 들어오고 있고요..
MainActivity에서 위와같이 함수 호출하면 처음 넣은 null만 들어오는데,
아, BroadCast Receiver 에서 onReceive() 타기 전에 값을 리턴해서 그런가 보다,
값이 들어오기전까지 멈추는 thread를 쓰기도 하고 해 봤는데.. 잘 안되더라구요.
혹시 이 문제를 해결하는데 좋은 방법이 있을까요?