Android studio xử lý nút back điện thoại

Android studio xử lý nút back điện thoại

  • #1

Mình thử tìm trên mạng rồi nhưng ko đúng theo ý mình, hoặc cũng có thể do mình chưa biết tìm đúng từ khóa.
Mình làm một cái app có nhiều activities, trên mỗi activity có các nút bấ,m để đến activity khác và có thêm 1 nút back để trở về activity trước đó.
Mình chỉ biết cách làm trở về 1 activity mặc định chứ ko biết làm sao để trở về activity vừa xem qua.
VD:
có 3 activities: A, B, C. Chúng ta lần lượt đi qua các activities như B->A->C.
Bây giờ đang ở C bấm back sẽ quay về activity trước đó, cụ thể trong trường hợp này là A.
Nhưng các bạn đừng hiểu lầm mặc định nút back ở C là quay về A nha! vì có lúc mình đi từ A->B->C thì bấm nút back ở C phải quay về B!
Mình nói hơi dài dòng cụ thể như vầy luôn :
Intent intent= new Intent(C_Activity.this, .....);
Vậy cái chỗ .... giờ biết điền cái gì vô vì mình đâu biết trước là đã đi qua cái activity nào đâu để mà quay về?
Bạn nào giúp được chỉ mình với!
Thanks mọi người!

Android studio xử lý nút back điện thoại

Android studio xử lý nút back điện thoại

  • #3

À thanks bạn, nhưng mà làm như vậy nó lại có 1 khuyết điểm đó là khi quay lại một activity(ac) trước đó thì nó lại ko thực hiện những công việc của ac đó.
VD:

Code:

    @Override
        public void onClick(View v) {
            switch (v.getId()) {
            case R.id.btnToTwo:
                Toast.makeText(getApplicationContext(), "Here is page 2!", Toast.LENGTH_SHORT).show();
                Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
                startActivity(intent);
                break;
            case R.id.btnToThree:
                Toast.makeText(getApplicationContext(),"Here is page 3!", Toast.LENGTH_SHORT).show();
                Intent intent1 = new Intent(FirstActivity.this, ThirdActivity.class);
                startActivity(intent1);
                break;
            case R.id.btnBack1:
                finish();
            }
        }

Khi mà bấm vào cái btnBack1 nó quay về mấy cái ac trước thì nó sẽ ko hiện mấy cái Toast.
Vậy làm sao để khắc phục điều này? hoặc cho mình biết nên tìm theo từ khóa gì cũng được để mình tự tìm.

Android studio xử lý nút back điện thoại

  • #4

Code:

 case R.id.btnBack1:
                finish();

Thì cái ni cái Toast tét gì đâu!

Android studio xử lý nút back điện thoại

  • #5

Thì mình cứ nghĩ nó quay về ac trước mà trong ac trước có Toast thì nó phải thực hiện Toast của ac đó chứ! vậy bạn chỉ mình làm sao cho nó tự động thực hiện mọi công việc của ac mà nó quay về đi!

Android studio xử lý nút back điện thoại

  • #7

Thiết bị đã có phím back rồi mà. Bạn cần gì phải làm lại nữa, nó sẽ thừa ra.

  • #8

Mình thử tìm trên mạng rồi nhưng ko đúng theo ý mình, hoặc cũng có thể do mình chưa biết tìm đúng từ khóa.
Mình làm một cái app có nhiều activities, trên mỗi activity có các nút bấ,m để đến activity khác và có thêm 1 nút back để trở về activity trước đó.
Mình chỉ biết cách làm trở về 1 activity mặc định chứ ko biết làm sao để trở về activity vừa xem qua.
VD:
có 3 activities: A, B, C. Chúng ta lần lượt đi qua các activities như B->A->C.
Bây giờ đang ở C bấm back sẽ quay về activity trước đó, cụ thể trong trường hợp này là A.
Nhưng các bạn đừng hiểu lầm mặc định nút back ở C là quay về A nha! vì có lúc mình đi từ A->B->C thì bấm nút back ở C phải quay về B!
Mình nói hơi dài dòng cụ thể như vầy luôn :
Intent intent= new Intent(C_Activity.this, .....);
Vậy cái chỗ .... giờ biết điền cái gì vô vì mình đâu biết trước là đã đi qua cái activity nào đâu để mà quay về?
Bạn nào giúp được chỉ mình với!
Thanks mọi người!

I think you should take care about "Tasks and back stack" to know how to Android manage multiple activities in your application.

This link can help you

Android studio xử lý nút back điện thoại

  • #10

Cách đơn giản nhất là:
1. trước khi chuyển đến activity khác, finish() activity hiện tại. Ví dụ A -> B. finish A rồi mới chuyển qua B
2. quay ngược lại activity trước đó với yêu cầu của chú là LOAD LẠI ACTIVITY thì dùng intent để chuyển đến activity đó thôi.

Cách khác nữa là dùng intent để set FLAG cho activity. vấn đề này chú tự tìm hiểu.