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

액티비티 확인하는 방법 질문있습니다

0 추천
현재 액티비티가 subactivity이면 액티비티 이동 없이 현재 액티비티에 텍스트를 출력하고 싶은데요

if문을 써서 if(현재 액티비티==subactivity){} 이렇게 하는거 맞나요??

맞다면 if문 안에를 어떻게 채워야 될까요??..
탄약7 (380 포인트) 님이 2016년 7월 20일 질문

1개의 답변

0 추천
두 액티비티간의 상호작용이 필요 없다면

액티비티 호출시 Intent 파라미터로 특정 데이터를 넘겨서 자신이 subActivity인지 알도록 하시고

 

두 액티비티간의 상호작용이 필요하시다면

액티비티 호출시 startActivity가 아닌 startActivityForResult 로 호출하여

subActivity에서 getCallingActivity().getClassName()을 호출하시면 요녀석이 부모의 클래스명을 알려줄겁니다.
Development Guy (70,570 포인트) 님이 2016년 7월 20일 답변
일단 답변 감사드립니다.
제가 하려고 하는게 블루투스로 데이터가 들어오면 class의 BTService에서 수신하고 Activity에 보내려고하는건데 현재 main화면에있고 출력을 SubActivity로 보낸 다고할때 데이터가 들어오면 MainActivity에서 SubActivity로 화면전환되면서 데이터가 표시되는데 문제는 다음 데이터를 표시할때 SubActivity가 다시 생성되면서 데이터가 출력됩니다..
BTService가 MainActivity에 포함되어 있어서 BTService에서 발생하는데이터를
SubActivity로 보내기만 하면 되는것인가요?

그럼 SubActivity에 BroadcastReceiver를 구현해서
MainActivity.BTService -> "sendBroadcast" -> SubActivity.BroadcastReceiver

이런식으로 하시면 굳이 데이터 발생할떄 SubActivity를 실행 시켜줄 필요 없이
그 안의 데이터만 업데이트 시켜주면 될거 같은데염
아! 아니요 제가 말을 잘못했네요
BTService가 MainActivity에 포함되있는게 아니구요
SubActivity에서 데이터를 출력하기 위해

BroadcastReceiver를 현재 이렇게 코딩했는데

public class BluetoothSignalReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context $context, Intent $intent) {

        Intent intent = new Intent($context, SubActivity.class);
        intent.setAction($intent.getAction());
        intent.putExtra("msg", $intent.getStringExtra("signal"));
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        $context.startActivity(intent);

이렇게 할 경우에 데이터를 출력할때마다 SubActivity가 새로 뜨면서 출력이 됩니다..
...