13

Tôi mới phát triển Android.Cách kết thúc hoạt động của phụ huynh từ hoạt động của trẻ

Tôi đã tạo Hoạt động chính (-> A), có 4 nút. Một trong 4 nút là nút EXIT.

Tôi bắt đầu một hoạt động khác (-> B), khi nhấp vào nút EXIT. Điều này mở ra 'B'Activity thông qua một ý định từ' A'Activity.

Hoạt động 'B' chứa - Bạn có muốn thoát không? Có-Nút & Không có nút.

Nếu tôi kết thúc(), nhấp vào nút - nó thoát khỏi 'B'Activity. Tôi muốn hoàn thành 'B' & 'A'.

Tôi thậm chí đã thử A.finish() -> điều này không được công nhận và dẫn đến lỗi cú pháp/ngữ nghĩa.

Tôi sẽ đánh giá cao trợ giúp tại đây.

P.S: Tôi đang sử dụng điện thoại phiên bản Android-2.2 và tôi không thích sử dụng ActivityManager để giải quyết vấn đề này.

Trả lời

36

Cố gắng để khởi động hoạt động trẻ với

startActivityForResult(intent, REQUEST_EXIT); 

Trong hoạt động con

case R.id.quit: 
    setResult(RESULT_OK, null); 
    finish(); 

Trong hoạt động cha mẹ

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == REQUEST_EXIT) { 
     if (resultCode == RESULT_OK) { 
      this.finish(); 

     } 
    } 
} 
+0

Điều này đã giúp - cảm ơn rất nhiều !! – sudhishkr

+0

Điều đó có hiệu quả nếu hoạt động gốc không xuất hiện. Ý tôi là tôi có một nút bắt đầu một hoạt động khác. bấm vào nút này, tôi cũng sẽ hoàn thành hoạt động hiện tại và cha mẹ của nó – hasan83

+0

Phương thức này sẽ hoạt động khi hoạt động con được bắt đầu trong hoạt động mẹ sử dụng startActivityForResult và onActivityResult được định nghĩa trong cha mẹ. –

6

sử dụng startActivityForResult() trong Hoạt động Một cho sự khởi đầu hoạt động B và onActivityResult() A chỉ finish() Hoạt động A. Trong Hoạt động B trên nút bấm chỉ finish()Hoạt động B.

+0

cảm ơn Georgy đã giải thích tương tự - tôi đã sử dụng phần mã của anh ấy. – sudhishkr

5

Bạn có thể kết thúc hoạt động cha mẹ từ hoạt động con như ...

Trong Phụ Huynh ....

startActivityForResult(new Intent(Parent.this, Child.class), ACTIVITY_CONSTANT); 

Và ghi đè phương thức OnActivityForResult (...) trong Phụ huynh.

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 
    if(requestCode == ACTIVITY_CONSTANT) 
    { 
     finish(); 
    } 
} 

Khi bạn gọi kết thúc() đối với hoạt động của trẻ, nó cũng hoàn thành cha mẹ.

+0

Cảm ơn - nó hoạt động – sudhishkr

Các vấn đề liên quan