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

안드로이드 액티비티 질문

0 추천
B 액티비티에서 A액티비티로 finish()를 사용하여 이동시 B액티비티의 토스트가 작동되는 이유가 무엇인가요??

 

onBackPressed()를 이용해서 백버튼 시 finish()를 주었는데, A액티비티 화면에 B액티비티의 토스트가 실행되네요 이말은 B액티비티가 한번더 실행됬다는 건데 왜 그런건가요?? 이걸 어떻게 하면 해결할 수 있을까요???
알파고 (4,320 포인트) 님이 2017년 6월 5일 질문

1개의 답변

0 추천
B Activity에서 Toast를 언제 발생시키셨나요?
빅클라인 (4,520 포인트) 님이 2017년 6월 6일 답변
따로  

    @Override
    public void onBackPressed() {
        super.onBackPressed();

        mDatabase.child(uid).child("user").setValue(null);

        finish();
    } 를 만들어놓고 백버튼을 누르면

@Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_random_two);

        value = getIntent().getExtras().get("value").toString();

       /* FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

        if (user != null)
        {
            uid = user.getUid();
        }
        */

        uid = getIntent().getExtras().get("uid").toString();

        mDatabase = FirebaseDatabase.getInstance().getReference("users");         final DatabaseReference data = mDatabase.child(uid).child("user"); //child(uid).child("name").child("user");
        mDatabase.child(uid).child("user").setValue("1");

        data.addValueEventListener(new ValueEventListener()
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                name = dataSnapshot.getValue(String.class);

                if(name != null)
                {
                    Toast.makeText(RandomChatActivityTwo.this, "Success2", Toast.LENGTH_SHORT).show();

                    random_user();
                }
                else
                {
                    Toast.makeText(RandomChatActivityTwo.this, "Failed", Toast.LENGTH_SHORT).show();  <- 액티비티가 넘어갈때( b->a) 이 부분이 a액티비티에 표시됩니다;;
                }


            }
            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });
onBackPressed() 안에서 setValue()를 호출하였으니, eventListener를 통해 전달이 되었겠네요.
Toast를 발생시키고 싶지 않으시다면 onBackPressed() 에서 eventListener를 unregist하시면 될듯 합니다.
...